【发布时间】:2014-07-19 11:14:19
【问题描述】:
我有一个具有以下签名的方法
def my_method(first, second = {})
因此它可以通过两种方式调用...
my_method 'first'
my_method 'first', { second: 'value' }
我只对在我的测试中测试第一个参数的值感兴趣,因此我试图提出一个 RSpec 匹配器语句来完成这项工作。我的衣橱是
expect_any_instance_of(my_clazz).to receive(:my_method).with(code, anything).once
但是当我没有传入第二个参数并出现以下错误时,这会失败
expected: ('first', anything)
got: ('first')
我知道您可以将不同匹配器的库传递给 with 方法我找不到任何可以以这种方式成为可选的工作。
任何人都可以提供有关如何实现这一点的见解吗?
【问题讨论】:
-
rspec 跟踪器上的这个issue 暗示目前没有特别简单的方法可以做到这一点
-
从那个问题看来,你是对的。可能需要观察并等待问题得到解决。感谢您的链接
标签: ruby-on-rails ruby rspec