2013-04-19 45 views
13

Làm thế nào để scalatest và spock khác nhau? giá trị gia tăng của mỗi cái là gì? Đó là nhanh nhẹn hơn cho phát triển hướng hành vi (BDD)? Bạn có thể chia sẻ một số suy nghĩ về vấn đề này không?So sánh ScalaTest và Spock

Tôi muốn bắt đầu BDD, tôi muốn chọn một trong hai, do đó tôi muốn đưa ra quyết định có học vấn. Do đó tôi nhận được tối đa của thông tin đầu tiên, đặc biệt là cho rằng tôi là một lập trình java và scala dường như có một đường cong học tập đó là quan trọng.

Bất kỳ tư vấn hoặc ý tưởng hoặc trả lại từ kinh nghiệm sẽ được chào đón.

Rất cám ơn

Trả lời

23

Tóm lại, tôi sẽ khuyên bạn nên sử dụng ScalaTest cho kiểm tra mã Scala, và Spock để thử nghiệm Java hoặc mã Groovy. (Tất nhiên, nó cũng hoàn toàn có thể để kiểm tra mã Java với ScalaTest.) Tại sao không cung cấp cho cả hai công cụ một shot và dính với một trong những bạn cảm thấy thoải mái hơn?

Tuyên bố từ chối trách nhiệm: Tôi là tác giả của Spock.

+0

Rất cám ơn câu trả lời, tôi sẽ thử cả hai – MaatDeamon

+1

Peter đang rất hào phóng ở đây. Các tính năng của Spock không có một cái bóng nghi ngờ nào tuyệt vời đến vậy, đối với tôi, nó để lại tất cả các khuôn khổ thử nghiệm trong bụi. Có nói rằng, nó sẽ là tuyệt vời nếu @Peter có thể bình luận nếu thực sự Spock là hoàn toàn khả thi như là khuôn khổ thử nghiệm cho Scala ... kể từ khi tôi đọc một bài cũ đề cập rằng tính năng của Spock là trình biên dịch phụ thuộc? – Beezer

3

Trong khi tôi đồng ý với câu trả lời của Peter, tôi muốn đưa ra quan điểm của mình về vấn đề này.

Cả ScalaTest và Spock đều cung cấp thử nghiệm BDD thông thạo. Tuy nhiên tôi thấy rằng tính năng tốt nhất của Spock là bạn có thể tạo kịch bản đơn lẻ với nhiều tập hợp dữ liệu và kết quả mong đợi. Điều này rất giống với phác thảo kịch bản của Cucumber, chỉ chạy ở mức thử nghiệm đơn vị.

Tôi không thể tìm thấy khung/thư viện thử nghiệm đơn vị khác thực hiện điều đó.

Tóm lại, nếu bạn cần kiểm tra nhiều đầu vào/đầu ra cho một kịch bản thử nghiệm, hãy sử dụng Spock, nếu không, hãy thoải mái chọn bất cứ điều gì bạn cảm thấy thoải mái.

+0

https://github.com/junit-team/junit4/wiki/parameterized-tests cho cùng một sự hoàn chỉnh, jUnit có thể làm tương tự, nó chỉ xấu xí –

+0

Tôi không nghĩ như vậy, các tham số-thử nghiệm sẽ chỉ cho phép kịch bản đơn tối đa cho mỗi lớp kiểm thử đơn vị (trên tham số hàm dựng). Trên trường được tham số hóa, bạn có thể nhận được nhiều hơn, nhưng chỉ để có được uglier. – Wins

+0

Tôi đồng ý. Nó chỉ là, về mặt lý thuyết, jUnit _does_ có tính năng này, trong khi yếu tố xấu xí làm cho nó, thực tế, nó không phải bất cứ nơi nào gần như hấp dẫn để sử dụng ở đó. –