私はまだBDD サイクルのcucumber
との組み合わせを理解しようとしています。rspec
非常に単純なログイン システム用に次のシナリオを定義しました。
Feature: Log in
In order to get access to the application
As a user
I want to log in
Scenario: User logs in successfully
Given I exist as a user
When I go to the login page
And I fill in "username" with "gabrielhilal"
And I fill in "password" with "secret"
And I press "Login"
Then I should see "Welcome gabrielhilal"
And I should be redirected to the home page
Scenario: User enters wrong email/password combination
Given I exist as a user
When I go to the login page
And I fill in "username" with "gabrielhilal"
And I fill in "password" with "wrongpassword"
And I press "Login"
Then I should see "Invalid username/password combination."
And I should see the login page again
steps
次に、 に飛び込むのに適切な瞬間を待つことを定義し始めましたrspec
。
ユーザーをシミュレートし、FactoryGirl
ステップを定義する最初のステップに合格しました。
Given(/^I exist as a user$/) do
@user = FactoryGirl.create(:user)
end
セッションのルート、コントローラー、およびアクションを追加しました。
When(/^I go to the login page$/) do
visit login_path
end
ログイン用のフォームを作成しました:
When(/^I fill in "([^"]*)" with "([^"]*)"$/) do |field, value|
fill_in field, with: value
end
When(/^I press "([^"]*)"$/) do |button|
click_on(button)
end
フラッシュ メッセージをレイアウトに追加しました。
When(/^I should see "([^"]*)"$/) do |arg|
page.should have_content(arg)
end
ホームページ用のルートとコントローラー (static_pages) を追加しました。
When(/^I should be redirected to the home page$/) do
visit home_path
end
最後のステップを解決しました:
When(/^I should see the login page again$/) do
visit login_path
end
rspec
そして、私はすべて緑色になりました...これらのシナリオでは、必要性を感じませんでした. 私は何が欠けていますか?
rspec で何をテストすべきかを理解しようとしています。rspecですべてをもう一度テストするのは正しくないと思います....