我對Capybara和測試工具不太熟練。我正在構建一個多步驟表單或表單嚮導。使用rspec測試多步表單
這是我在我的頭上有一個場景:
- 用戶訪問註冊路徑
- 填寫一堆無效數據和一些驗證錯誤應顯示
- 填寫有效的數據,用戶應採取下一步驟
- 重複此步驟上述n個步驟與有效數據
- 檢查,如果用戶的數目增加了1
這是我這麼遠(我好不容易纔得到的東西的工作):
describe "signup" do
before { visit signup_path }
let(:submit) { 'Start creating my account' }
let(:next_btn) { 'Next' }
describe "with invalid information" do
it "should not create a user" do
expect { click_button submit }.not_to change(User, :count)
end
describe "should not move to the next step" do
before { click_button submit }
it { should have_content('error') }
it { should have_title('Start here') }
end
end
describe "with valid information wizard step 1" do
before do
fill_in 'First name', with: "Example"
fill_in 'Last name', with: "User"
fill_in 'email', with: "[email protected]"
find("#user_password").set "foobar"
end
it "should move to the next wizard step 2" do
click_button submit
should have_content('We need some more info')
end
it "should have error on the wizard step 2" do
fill_in 'Date of birth', with: "Example"
click_button next_btn
should have_content('error')
end
end
end
此斷言失敗should have error on the wizard step 2
,似乎在步驟1中仍然被卡住,我知道這個從看頁面內容和錯誤,其中Dob element can't be found
和next button
不能找到。
這是甚至可以用水豚順序測試,保持信息的一步一步?
嗨肯特,感謝您的迴應我已更改問題的標題,以便您的建議更準確。雖然我明白你想說的是保持代碼乾爽。如果我會先進行測試,然後從第二步跳到第三步,那麼我會這樣做。現在我被困在第二步,因爲你可以看到我的代碼,我無法跳到第三步。你能否提供一個簡單的代碼示例,假設每個表單只有一個必填字段? – ant
不幸的是,我不太清楚rspec是否足夠用於代碼示例。我在一般意義上講的是更多的哲學思考:如何進行嚮導測試。 –
好的,謝謝你的努力 – ant