如何使rspec-mocks的期望值迅速上升

ASTGTCIV

expect(target).to receive(:message).with(arg_matcher)如果使用不匹配传递给的arg匹配器的参数调用目标,则rspec-mocks '仅在测试结束时显示错误with有没有办法迫使它急于失败-即,一旦使用不匹配的参数调用目标?RR以这种方式工作。

我面临的问题是,当我如上所述使用arg_matcher设置此模拟程序时,由于目标调用了不同的参数,因此测试开始失败,但是在测试结束之前另一个断言失败了,所以我只看到错误从这个断言中获取,而不是从缺少的模拟中获取(这将使我看到预期的参数与实际调用的参数之间的差异)。

使用rspec-mocks 3.3.2。

戴夫·斯威斯古斯(Dave Schweisguth)

我不知道一种receive急于失败的方法但是,have_received急于失败,因此,如果这是多个期望中的第一个,它将是未通过测试且RSpec报告的那个。

class Foo
  def self.bar(baz)
  end
end

describe "RSpec" do
  it "reports a non-mock expectation failure before a mock expectation failure" do
    expect(Foo).to receive(:bar).with(1)
    expect(true).to be_falsy # RSpec reports this failure
    Foo.bar 2
  end

  it "reports a spy expectation failure when you'd expect it to be reported" do
    allow(Foo).to receive(:bar) # Spy on Foo
    Foo.bar 2
    expect(Foo).to have_received(:bar).with(1) # RSpec reports this failure
    expect(true).to be_falsy
  end

end

有关详细信息,请参见RSpec间谍的文档

这种解决方案可能是最好的,如果

  • 如果您喜欢像我一样按照逻辑的“排列-动作-断言”顺序进行测试
  • 如果间谍期望失败,您将不在乎其他期望
  • 如果你介意的额外的输入allow,设置了间谍不到你介意aggregate_failures

常规模拟和Adarsh的解决方案更好

  • 您想看到两个期望的结果,无论是否失败
  • 如果您对aggregate_failures障碍物的关注程度不及allow对间谍物的额外输入,那么您可以设置间谍

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使rspec-mocks的期望值迅速上升

来自分类Dev

如何从中获得期望值

来自分类Dev

DATEDIF()未返回期望值,如何计算月龄?

来自分类Dev

json如何使结果更改为期望值

来自分类Dev

如何从zelig模拟输出中提取期望值

来自分类Dev

如何获得PowerMock以从静态方法返回期望值

来自分类Dev

MATLAB:如何求解该积分以获得期望值?

来自分类Dev

rspec + capybara:功能测试每个测试只有1个期望值?

来自分类Dev

如何使用rspec / rspec-mocks存根类方法

来自分类Dev

rspec-如何更改lambda应该期望的?

来自分类Dev

您如何引起期望中止RSpec的执行?

来自分类Dev

Rspec / Capybara:如何“期望看到路由错误”?

来自分类Dev

如何在角度js量角器中比较实际值和期望值

来自分类Dev

如何比较量角器中的实际值和期望值

来自分类Dev

在RSpec中创建消息期望值是否可以消除通过控制台传递的测试中的剩余消息?

来自分类Dev

如何在PHP Mockery中执行hasKeys()或创建自定义参数期望值?

来自分类Dev

Jasmine 2.0如何在运行期望值之前实时等待

来自分类Dev

如何使用prop.table()输出来计算期望值

来自分类Dev

如何在Oracle SQL上使用双表返回带小数位的期望值?

来自分类Dev

如何在vscode中显示react组件prop的期望值?

来自分类Dev

如何使一列根据另一列中的日期返回期望值?

来自分类Dev

Jasmine 2.0如何在运行期望值之前实时等待

来自分类Dev

如何给rspec伪造Time.now值

来自分类Dev

如何检索RSpec :: Expectations :: ExpectationTarget:@target的值?

来自分类Dev

如何更改R中分类变量的最高值(按频率)的所有期望值

来自分类Dev

rspec-如何与期望中的实际DateTime比较?

来自分类Dev

在Rails 5中如何期望RSpec中的Params哈希?

来自分类Dev

RSpec期望...如何更改...以在内部工作?

来自分类Dev

rspec-如何与期望中的实际DateTime比较?

Related 相关文章

  1. 1

    如何使rspec-mocks的期望值迅速上升

  2. 2

    如何从中获得期望值

  3. 3

    DATEDIF()未返回期望值,如何计算月龄?

  4. 4

    json如何使结果更改为期望值

  5. 5

    如何从zelig模拟输出中提取期望值

  6. 6

    如何获得PowerMock以从静态方法返回期望值

  7. 7

    MATLAB:如何求解该积分以获得期望值?

  8. 8

    rspec + capybara:功能测试每个测试只有1个期望值?

  9. 9

    如何使用rspec / rspec-mocks存根类方法

  10. 10

    rspec-如何更改lambda应该期望的?

  11. 11

    您如何引起期望中止RSpec的执行?

  12. 12

    Rspec / Capybara:如何“期望看到路由错误”?

  13. 13

    如何在角度js量角器中比较实际值和期望值

  14. 14

    如何比较量角器中的实际值和期望值

  15. 15

    在RSpec中创建消息期望值是否可以消除通过控制台传递的测试中的剩余消息?

  16. 16

    如何在PHP Mockery中执行hasKeys()或创建自定义参数期望值?

  17. 17

    Jasmine 2.0如何在运行期望值之前实时等待

  18. 18

    如何使用prop.table()输出来计算期望值

  19. 19

    如何在Oracle SQL上使用双表返回带小数位的期望值?

  20. 20

    如何在vscode中显示react组件prop的期望值?

  21. 21

    如何使一列根据另一列中的日期返回期望值?

  22. 22

    Jasmine 2.0如何在运行期望值之前实时等待

  23. 23

    如何给rspec伪造Time.now值

  24. 24

    如何检索RSpec :: Expectations :: ExpectationTarget:@target的值?

  25. 25

    如何更改R中分类变量的最高值(按频率)的所有期望值

  26. 26

    rspec-如何与期望中的实际DateTime比较?

  27. 27

    在Rails 5中如何期望RSpec中的Params哈希?

  28. 28

    RSpec期望...如何更改...以在内部工作?

  29. 29

    rspec-如何与期望中的实际DateTime比较?

热门标签

归档