Ưu và nhược điểm của mỗi khung Phát triển Theo hướng Hành vi (BDD) cho Java là gì?
Ví dụ, tôi đã tìm thấy một số trong số chúng ở đây .
Sử dụng khung BDD có hợp lý không nếu tôi đã sử dụng thư viện chế nhạo (ví dụ: Mockito )?
Ưu và nhược điểm của mỗi khung Phát triển Theo hướng Hành vi (BDD) cho Java là gì?
Ví dụ, tôi đã tìm thấy một số trong số chúng ở đây .
Sử dụng khung BDD có hợp lý không nếu tôi đã sử dụng thư viện chế nhạo (ví dụ: Mockito )?
Câu trả lời:
Tôi vừa hoàn thành việc so sánh ba khung công tác BDD cho Java. Rõ ràng là những phát hiện của tôi có thời hạn sử dụng khá ngắn.
Tôi đã không có cơ hội để thử Cuke4Duke của JDave như tôi muốn, nhưng có lẽ sẽ thúc đẩy JBehave vào thời điểm này.
"ưu và nhược điểm" có thể là những điều khác nhau đối với những người khác nhau. Tôi thường xem qua
Và từ một số khuôn khổ, tôi đã xem xét
Liên quan đến chế độ giả: Bạn chắc chắn cũng cần một khung chế tạo. Các khung công tác BDD chỉ giúp bạn viết các thông số kỹ thuật, nhưng một số bài kiểm tra sẽ cần các bản mô phỏng hoặc sơ khai, đặc biệt. khi bạn thiết kế từ trên xuống (từ tổng quan đến chi tiết).
Khung BDD tốt nhất để sử dụng với Java là gì? Tại sao? Ưu và nhược điểm của từng khuôn khổ là gì?
Đây là một liên kết thú vị về Concordion so với Cucumber và Kiểm tra chấp nhận dựa trên Java
Tôi đã tìm thấy một vài trong số chúng ở đây, nhưng tôi không chắc nên chọn cái nào.
Thực sự, hãy nhìn vào cái được đề cập ở trên.
Sử dụng khung BDD có hợp lý không nếu tôi đã sử dụng thư viện chế nhạo (ví dụ: Mockito)?
Câu trả lời ngắn gọn: có, chắc chắn. Trên thực tế, thử nghiệm chấp nhận bằng cách sử dụng khung BDD và thử nghiệm đơn vị riêng biệt bằng cách sử dụng các đối tượng giả khác nhau đến mức tôi không thực sự hiểu câu hỏi. Kiểm thử chấp nhận là kiểm tra hộp đen, kiểm tra được sử dụng để xác minh rằng một tính năng kinh doanh đang hoạt động và được viết bởi nhà phân tích kinh doanh một cách lý tưởng. Kiểm thử đơn vị riêng biệt bằng cách sử dụng mocks là kiểm thử hộp trắng, kiểm tra được sử dụng để xác minh rằng một đơn vị đang hoạt động và được viết bởi các nhà phát triển. Cả hai đều hữu ích nhưng chúng có những mục đích hoàn toàn khác nhau. Nói cách khác, việc sử dụng Mockito hoàn toàn không thay thế khung BDD và điều ngược lại cũng đúng.
Ban đầu tôi đã thực hiện BDD của mình với jUnit đơn giản nhưng gần đây tôi đã xem xét JDave vì nó gần như là 1: 1 với những gì tôi đang làm với jUnit. Nó cũng chạy trên jUnit nên đã hoạt động trên Eclipse và cũng dễ dàng cấu hình để hoạt động trên các hệ thống tích hợp liên tục như Hudson. Không thể thực sự so sánh nó với những người khác nhưng trải nghiệm của tôi với JDave cho đến nay rất tốt.
Ồ và không bao giờ là một ý tưởng ngu ngốc khi sử dụng chế độ giả! Chúng không bị ràng buộc cụ thể với TDD / BDD, mục đích của chúng là giảm bớt gánh nặng kiểm tra nói chung.
Wow, mình thấy topic đang hot, nhiều câu trả lời hay ...
Trớ trêu sang một bên, gần đây tôi đã khám phá ra BDD và thấy khái niệm này thật thú vị. Này, nó buộc phải viết cả hai bài kiểm tra ... và thông số kỹ thuật! Có vẻ như đáng ngạc nhiên, cái sau cũng có thể bị thiếu trong một số dự án ... Hoặc chỉ thiếu độ chính xác mà BDD buộc phải giới thiệu.
Các hành vi Driven Development bài viết tóm tắt các khái niệm và các liên kết đến một số điều tốt (giống như được viết bởi Andrew Glover). Hơn nữa, về chủ đề của luồng này, nó đưa ra một danh sách khá toàn diện (tôi cho là vậy) về các khung công tác BDD, một số lượng lớn trong số đó dành cho Java.
Nó không giải quyết được vấn đề về việc chọn khung nhưng ít nhất nó sẽ dễ dàng tìm kiếm ...
Vì BDD chủ yếu dựa vào khả năng đọc của mã thử nghiệm, tôi cho rằng một tiêu chí lựa chọn tốt là xem các tham quan / hướng dẫn nhanh và xem cái nào có vẻ phù hợp với phong cách của bạn hơn. Các tiêu chí khác có thể là thực tế là một công cụ đòn bẩy khung mà bạn đã quen thuộc (kiểm tra đơn vị, mô phỏng), cách sử dụng với IDE, v.v.
Tôi đã thử Cucumber-JVM (trước đây được phát triển thành Cuke4Duke). Nó sử dụng Gherkin DSL cho đặc điểm kỹ thuật, được lưu trữ dưới dạng văn bản thuần túy.
Nó có thể được chạy như một thử nghiệm JUnit. Vì vậy, vấn đề duy nhất để bắt đầu sử dụng nó là làm cho người kinh doanh hoặc Giám đốc sản phẩm đọc / ghi .features trong Nguồn.
Các kết quả
Nhóm của tôi đã sử dụng JBehave được một thời gian. Nó sử dụng các tệp văn bản thuần túy để lưu trữ các thông số kỹ thuật. Mỗi bước (Cho, Khi, Thì) sau đó được thực hiện bằng một phương thức nhất định có thể trích xuất các tham số từ bước. Các kịch bản có thể được thụt lề và được định dạng tốt, điều này sẽ giúp ích rất nhiều nếu khách hàng muốn xác minh chúng.
Có một số vấn đề, quá. Chúng tôi đã chuyển sang Java 6. Đôi khi một số bước kịch bản bị bỏ qua trong quá trình thực thi. Nó có thể gây ra nhiều khó khăn trong việc tìm ra lỗi ở đâu.
Nhóm của tôi đã sử dụng JBehave thành công - chúng tôi đã chuyển sang nó sau khi sử dụng EasyB và nhận thấy các tệp kịch bản văn bản thuần túy dễ xử lý hơn.