当前位置:  开发笔记 > 后端 > 正文

Rspec allow_any_instance_of返回实例ID

如何解决《Rspecallow_any_instance_of返回实例ID》经验,为你挑选了1个好方法。

有可能做这样的事情吗???

allow_any_instance_of(Object).to receive(:foo).and_return("hello #{instance.id}")

我可以根据实例返回消息吗?



1> Peter Alfvin..:

是的,使用匹配器的“块”形式,该形式使您可以访问实例作为块的形式参数。您还需要确保Object(或您要传递给的任何类allow...)实现:foo(或您指定的任何方法)作为实例方法,否则allow...会引发错误。同样,当然,您需要确保也id已实现。

这是一些使用Object自身的示例代码:

class Object
  def id
    'bar'
  end
  def foo
  end
end
describe '' do
  it '' do
    allow_any_instance_of(Object).to receive(:foo) { |o| "hello #{o.id}" }
    puts Object.new.foo
  end
end

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有