如何使用Rspec检查方法是否存在?

时间:2015-10-08 16:24:26

标签: ruby-on-rails rspec

我想写一个很好的干净检查方法是否存在:

{
    key1:
    [ "val1"
      "val2"
       ...
    ]

    key2:
    [ "val1"
      "val2"
       ...
    ]
}

fake_method不存在,但是当我使用第二个约定时,我的测试通过了。

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

我相信我有答案。第二个约定不起作用,因为根据文档,匹配器是不同的:

https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers/respond-to-matcher

你应该尝试:

expect(subscriber).to respond_to(:fake_method) 

干杯!

答案 1 :(得分:1)

我们可以简单地将expect(subscriber).not_to respond_to(:fake_method)用于否定案例。