Chúng tôi đang xem xét sử dụng Dưa chuột trong dự án của chúng tôi để thử nghiệm chấp nhận.Cách sắp xếp định nghĩa thông số kỹ thuật trong Dưa chuột?
Khi chúng tôi viết một scenario
trong một Dưa chuột feature
, chúng tôi viết một danh sách các Given
, When
và Then
báo cáo.
Khi chúng tôi sử dụng dự án cucumber-jvm, câu hỏi Given
, When
và Then
có liên quan đến các phương thức Java trong (JUnit) lớp học.
Tôi muốn biết tổ chức tốt nhất cho mã liên quan đến Given
/When
/Then
trong cấu trúc dự án là gì. Mối quan tâm chính của tôi là duy trì các bài kiểm tra dưa chuột trên một dự án lớn, trong đó số lượng kịch bản khá quan trọng và đặc biệt là các mục được chia sẻ giữa các tính năng.
tôi có thể thấy ít nhất 2 phương pháp chính:
Mỗi tính năng có liên quan đến lớp JUnit riêng của nó. Vì vậy, nếu tôi có một tệp dưa chuột
foo/bar/baz.feature
, tôi sẽ tìm thấy lớp họcfoo.bar.Baz
JUnit được bổ sung với các phương thức được chú thích đầy đủ@Given
,@When
và@Then
.Cách ly
@Given
,@When
và@Then
các phương pháp thành các lớp và gói "chuyên đề". Ví dụ, nếu trong kịch bản dưa chuột của tôi, tôi có tuyên bốGiven user "foo" is logged
thì phương thức chú thích@Given("^user \"([^\"]*)\" is logged$")
sẽ được đặt trong phương thức lớpfoo.user.User
, nhưng có khả năng, phương pháp@When
được sử dụng sau trong cùng một kịch bản dưa chuột sẽ nằm trong một lớp và gói Java khác (giả sửfoo.car.RentCar
).
Đối với tôi, cách tiếp cận đầu tiên có vẻ tốt theo cách tôi có thể dễ dàng thực hiện mối quan hệ giữa các tính năng dưa chuột và mã Java của tôi. Nhưng nhược điểm là tôi có thể có rất nhiều dư thừa hoặc sao chép mã. Ngoài ra, khó có thể tìm ra phương pháp @Given
hiện có, để tránh tạo lại nó (IDE có thể giúp, nhưng ở đây chúng ta đang sử dụng Eclipse, và nó dường như không đưa ra một danh sách câu lệnh Given
hiện có?).
Cách tiếp cận khác có vẻ là tốt hơn về cơ bản khi bạn có Given
điều kiện được chia sẻ giữa một số tính năng dưa chuột và do đó tôi muốn tránh trùng lặp mã. Hạn chế ở đây là khó có thể tạo liên kết giữa phương thức Java @Given
và câu lệnh dưa chuột Given
(có thể, một lần nữa, IDE có thể trợ giúp?).
Tôi khá mới để dưa chuột, vì vậy có lẽ câu hỏi của tôi không phải là một câu hỏi hay, và với thời gian và kinh nghiệm, cấu trúc sẽ hiển nhiên, nhưng tôi muốn nhận được phản hồi tốt về cách sử dụng của nó ...
Cảm ơn.
Lưu ý rằng tôi không nghĩ rằng đó là bản sao của câu hỏi này: http://stackoverflow.com/questions/5023128/cucumber-how-to-organize-a-complex-test-set – romaintaz