Tôi hiện đang cố gắng tìm hiểu dưa leo và cách sử dụng đúng cách. Khi tìm kiếm các phương pháp hay nhất, hầu hết cách cũ đều được mô tả và tôi chưa thực sự tìm thấy hướng dẫn tốt. Tôi đã đọc về cách mới để làm điều đó nhưng tôi có một số vấn đề với cách thực hành tốt nhất.Làm thế nào để viết dưa chuột cho đường ray (Thực hành tốt nhất). Tính năng và các bước
Sau đây là một số kịch bản dưa chuột cơ bản mà tôi đang nghiên cứu.
Scenario: Unsuccessful login
Given a user has an account
When the user tries to log in with invalid information
Then the user should see an log in error message
Scenario: Successful login
Given a user has an account
When the user logs in
Then the user should see an log in success message
And the user should see a sign out link
Scenario: Successful logout
Given a signed in user
Then the user logs out
And the user should see an log out success message
Tôi tự hỏi điều này có ổn không? Tôi có vấn đề nếu tôi nên viết nó là "tôi ghé thăm" hoặc "truy cập của người dùng" hoặc "anh ấy truy cập" Về cơ bản những gì được ưa thích?
Thứ hai Tôi tự hỏi làm thế nào tôi nên xây dựng như sau:
Scenario: Visit profile of user
Given a user
And a second user
When the user visit the user profile
Then the user should see the name of the user
Scenario: Visit profile of another user
Given a user
And a second user
When the user visit the second users profile
Then the user should see the name of the second user
Đây chỉ là một cái gì đó tôi đặt lại với nhau nhưng tôi cảm thấy rằng nó không phải là cách tốt nhất. Tôi gặp sự cố trong các tệp định nghĩa bước của mình. Làm thế nào bạn sẽ xác định các bước để xử lý các kịch bản? Tôi muốn viết một cái gì đó tổng quát hơn, nhưng có lẽ nó không thực sự có thể? Tôi có nên có thuộc tính @second_user hoặc bạn đề xuất gì không?
def user
@user ||= FactoryGirl.create :user
end
Given /^a signed in user$/ do
user
sign_in(@user.email, @user.password)
end
Given /^a user has an account$/ do
user
end
When /^the user logs in$/ do
sign_in(@user.email, @user.password)
end
When /^the user logs out$/ do
click_link ('Sign out')
end
When /^the user tries to log in with invalid information$/ do
sign_in("incorrect-email", "incorrect-password")
end
Then /^the user should see a sign out link$/ do
page.should have_link('Sign out')
end
Then /^the user should see an log in success message$/ do
should have_success_message('Signed in successfully.')
end
When /^the user should see an log out success message$/ do
should have_success_message('Signed out successfully.')
end
Then /^the user should see an log in error message$/ do
should have_error_message('Invalid email or password.')
end
Cảm ơn vì đã giúp tôi!
Cảm ơn. Có vẻ như không có cách nào xung quanh thêm một số khớp nối giữa các mô hình và các tính năng dưa chuột. Hy vọng của tôi là không có bất kỳ thông tin nào như tên người dùng: trong các tính năng của tôi nhưng có vẻ như không có cách nào tốt đẹp xung quanh nó. –
Bạn được chào đón, tôi nghĩ rằng không có gì sai nếu có khớp nối, bởi vì đó là lý do tại sao chúng tôi viết tests.For ví dụ, nếu bạn thay đổi mô hình người dùng không có trường tên người dùng thì kịch bản này không thành công. và sau đó bạn sẽ sửa mô hình hoặc thay đổi kịch bản. – Khaled