我有以下内容:
规格/特征/ client_logic.rb
it "says unavailable slots" do
expect(page).to have_content("No more client slots available.")
end
哪个失败,因为在之前的let
中,Plan
创建了max_clients
,其中有{100}。有没有办法在任何给定时间强制模型的特定返回值功能?
我认为以下内容可行:
it "says unavailable slots" do
Plan.any_instance.stub(:client_slots).and_return(0)
expect(page).to have_content("No more client slots available.")
end
但这没效果。
答案 0 :(得分:1)
我认为您的存根设置正确,但看起来它正在您正在测试的页面被渲染后进行设置。
我不确定您的测试是如何构建的,但您可以通过创建新的上下文/功能并重新定义其中的let
来解决问题,例如:
describe '...' do
let(:plan) { ... }
before do
visit '...'
end
context 'without any client slots' do
let(:plan) { ... }
it "says unavailable slots" do
expect(page).to have_content("No more client slots available.")
end
end
end