gpt4 book ai didi

ruby-on-rails - 在 rspec 我们可以为一个测试关闭 verify_partial_doubles

转载 作者:行者123 更新时间:2023-12-04 00:38:17 24 4
gpt4 key购买 nike

我的项目在 rspec_helper.rb 文件中设置了这个值

mocks.verify_partial_doubles = true  

我有一个被标记的测试
TaskPublisher does not implement #publish

问题是在实例化之前,该方法在对象上不存在。这是基于要发布的任务类型的模块导入。 (元编程)

所以我想知道是否有办法关闭 verify_partial_doubles对于特定测试,但不影响其他具有该值的测试。

附带问题:没有将此标志设置为 true 会使 BDD 成为不可能吗?在我看来,它在 Mocking 的定义( https://stackoverflow.com/tags/mocking/info)面前飞了起来。

最佳答案

[Is there] a way to turn off [verify_partial_doubles] for a specific test .. ?



RSpec >= 3.6

使用 without_partial_double_verification
it 'example' do
without_partial_double_verification do
# ...
end
end

http://rspec.info/blog/2017/05/rspec-3-6-has-been-released/

RSpec < 3.6

是的,使用 user-defined metadataglobal "around hook" :
# In your spec ..
describe "foo", verify_stubs: false do
# ...
end

# In spec_helper.rb
RSpec.configure do |config|
config.mock_with :rspec do |mocks|
mocks.verify_partial_doubles = true
end

config.around(:each, verify_stubs: false) do |ex|
config.mock_with :rspec do |mocks|
mocks.verify_partial_doubles = false
ex.run
mocks.verify_partial_doubles = true
end
end
end

我相信这项技术的功劳归于 Nicholas Rutherford ,来自他在 rspec-rails issue #1076 中的帖子.

关于ruby-on-rails - 在 rspec 我们可以为一个测试关闭 verify_partial_doubles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26332615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com