Tôi nghĩ rằng bạn đang thực sự thiếu điểm ở đây. Bạn ALWAYS cần một When
. Đó là điều bạn nên thử nghiệm! Những gì bạn có thể bỏ qua là Givens
Điều bạn nên nói là;
When I visit the homepage
Then I should see "Welcome To The Site"
Given When Then
thực sự là một cách đại diện cho máy trạng thái tốt hơn.
Given some initial state (in your case, non)
When I perform some action (in your case, visiting the homepage)
Then I have some final state (in your case, text displayed to a user)
Điều tôi muốn làm là suy nghĩ về mọi thứ phải có mặt để cho phép When
xảy ra. Trong trường hợp của bạn dường như không có bất kỳ trạng thái ban đầu nào. Nhưng hãy xem xét nếu bạn đã có một số ứng dụng web. Bạn sẽ cần phải có một trạng thái ban đầu trước khi truy cập trang chủ (bạn cần đảm bảo rằng người dùng đã đăng nhập);
Given a user (user must be stored in the database)
And the user is logged in (a logged in user must be in the session)
When the user visits their homepage
Then the user should see "Welcome To Your Homepage"
Một kịch bản khác sẽ là;
Given no logged in user (some people would leave this Given out, but I add it for completness)
When a user visits their homepage
Then the user should be redirect to the login page
Như một người nào đó đã chỉ ra chính xác, hầu hết các công cụ BDD không thực sự phân biệt giữa Given When Then
nhưng bạn nên! Bản chất chi tiết của 'Given When Then' đã được chọn là dễ dàng hơn cho con người chúng ta hiểu và giúp các quá trình suy nghĩ của chúng ta. Một cỗ máy không thể quan tâm đến những gì bạn gọi là các bước. Với trường hợp này, bạn nên cố gắng hết sức để sử dụng các từ khóa chính xác mọi lúc.
Nguồn
2014-10-06 15:43:07
Thực tế luồng không xuất hiện để thậm chí quan tâm cho dù bạn đặt tên cho một bước Given, khi hoặc sau đó miễn là nó liên kết với các quyền/khi/sau đó thuộc tính. Lựa chọn từ là hương vị và dường như chỉ thực hiện các bước theo thứ tự. – perfectionist
Nó giống như người cầu toàn nói; specflow chỉ cần thực hiện các bước theo thứ tự được nêu trong tệp tính năng. Nó không thể quan tâm ít hơn về thuộc tính bạn sử dụng. –
Doh - không có dòng mới trong nhận xét! Tôi khuyên bạn nên sử dụng Khi nào các bước để đánh dấu rõ hành động bạn đang thử nghiệm. Như trong Arrange Act Assert. –