rspec - 如何在不启用旧语法的情况下取消 rspec 3 中的 stub ?

标签 rspec rspec3

我正在从 rspec 2 升级到 rspec 3,并且想使用新语法而不启用旧语法。但是我在顶层 before(:each) 中设置了一些 stub 。我有选择地阻止 unstub我想要原始实现的地方。

当我用新的 allow 定义 stub 时,是否有一些等效的方法来删除 stub ?句法?

最佳答案

您可以使用

expect(Person).to receive(:find).and_call_original
重新定义它们。
这将另外检查原始的 :find 方法是否已在 person 上调用

关于rspec - 如何在不启用旧语法的情况下取消 rspec 3 中的 stub ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24372887/

相关文章:

actionmailer - Rails 4、RSpec 3.2 - 如何模拟 ActionMailer 的 Deliver_now 方法来引发异常

Sublime Text 2 中的 RubyTest

ruby-on-rails - 如何 stub i18n_scope 以在 Rails 4 rspec 3.3.0 上模拟 ActiveRecord::RecordInvalid?

ruby-on-rails - 如何在rspec rails请求测试中丢失authenticity_token进行POST?

ruby-on-rails - 如何将 Rails DateTime 分辨率限制为微秒?

ruby - 如何将参数传递给 rspec 中的主题

ruby-on-rails - 使用RSpec测试Rails辅助方法时,如何在params哈希中设置值?

ruby-on-rails - 在 RSpec 中获取 'Bad value for range'

ruby-on-rails - 是否可以添加 "somewhere"一个 `before(:each)` Hook ,以便所有规范文件都可以运行它?

ruby - 如何为逻辑编写 rspec 并编写 mock STDIN