gpt4 book ai didi

ruby-on-rails - RSpec 之前在帮助程序中

转载 作者:数据小太阳 更新时间:2023-10-29 08:22:04 24 4
gpt4 key购买 nike

有没有可能做这样的事情?

module MyHelper
before (:each) do
allow(Class).to receive(:method).and_return(true)
end
end

然后在我的测试中我可以做类似的事情:

RSpec.describe 'My cool test' do
include MyHelper
it 'Tests a Class Method' do
expect { Class.method }.to eq true
end
end

编辑:这会产生以下错误:

undefined method `before' for MyHelper:Module (NoMethodError)

基本上我有一个案例,其中许多测试做不同的事情,但它们之间的一个通用模型对 after_commit 使用react,最终总是调用一个与 API 对话的方法。我不想全局允许 Class 接收 :method 因为有时,我需要为特殊情况自己定义它......但我想不必重复我的 allow/receive/and_return 并将其包装在一个普通的助手中......

最佳答案

您可以创建一个 hook that is triggered via metadata ,例如 :type => :api:

RSpec.configure do |c|
c.before(:each, :type => :api) do
allow(Class).to receive(:method).and_return(true)
end
end

在您的规范中:

RSpec.describe 'My cool test', :type => :api do
it 'Tests a Class Method' do
expect { Class.method }.to eq true
end
end

您还可以将 :type => :api 传递给单独的 it block 。

关于ruby-on-rails - RSpec 之前在帮助程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41828138/

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