9

我已将我的项目升级到 Rails 4,但现在我收到了一些弃用警告,其中之一是DEPRECATION: any_number_of_times 已弃用。. 我收到此警告的代码是

sponsorship = RSpec::Mocks::Mock.new(:sponsorship)

SPONSORSHIP.should_receive(:[]).with('sponsorship').any_number_of_times.and_return(sponsorship)

另一种情况是

sponsorship.should_receive(:[]).with(key).any_number_of_times.and_return(value)

我已经为上面的代码使用了存根,但它没有正确存根。你能找到我做错的地方吗?对于我用过的存根

SPONSORSHIP.stub(:[]).with('sponsorship').and_return(sponsorship)
4

2 回答 2

14

该方法any_number_of_times已被弃用(并在 RSpec 3 中消失),因为它并没有真正测试任何东西。它永远不会失败,因为它也可以被调用 0 次。请参阅https://trello.com/c/p2OsobvA/78-update-website-menu-architecture-to-accommodate-pledging-as-well-as-weddings-memorials-etc中的扩展参数。

如果您希望它至少被调用一次,您可以使用at_least(1).times.

于 2013-10-07T15:11:18.847 回答
2

由于any_number_of_times其他替代方法没有任何帮助,例如at_least(n)at_most(n)帮助删除了那些弃用警告。

于 2013-10-08T14:51:54.943 回答