2013-06-19 31 views
0

我有以下幾點:如何在Capybara功能中強制使用Rails規範?

規格/功能/ client_logic.rb

it "says unavailable slots" do 
    expect(page).to have_content("No more client slots available.") 
end 

這將失敗,因爲在早期let存在與max_clients有100創造了一個Plan有沒有辦法強制特定的返回在任何特定時間爲此功能模型的值?

我想下面將工作:

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 

,但沒有奏效。

回答

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 
+0

,就是這樣。謝謝。 –

相關問題