2011-12-16 28 views
6

Trong Scalatest, tôi là một chút không rõ ràng về những lợi thế và bất lợi của việc sử dụng Spec so với WordSpec. Tôi nghĩ rằng javadoc cung cấp một số mức độ so sánh của WordSpec so với FlatSpec, nhưng tôi không có ý tưởng giữa Spec và WordSpec.BDD trong Scalatest: Spec so với WordSpec so với FlatSpec, tôi nên sử dụng nó?

Điều gì sẽ được coi là "thực hành tốt nhất" nếu bạn cảm thấy thoải mái với một trong hai cú pháp?

WordSpec có phải là sự tiến hóa của Spec (nếu một người đăng ký quan điểm cho rằng BDD là một sự tiến hóa qua TDD)? Hoặc ngược lại? Nếu họ là những đồng nghiệp hoàn toàn bình đẳng về vấn đề đó, tại sao tôi lại chọn một người khác?

Có lẽ đây là một "câu hỏi tôn giáo", nhưng ngay cả khi đó là những câu hỏi ở mỗi bên thì ít nhất cũng phải có một số điểm cộng và những câu hỏi mà họ muốn chỉ ra. Tôi rất muốn nghe những lý lẽ đó.

Nếu đây là câu hỏi thường gặp, tôi xin lỗi trước: Tôi không thể tìm thấy bất kỳ điều gì trong các tìm kiếm của tôi về so sánh này.

Trả lời

15

Thông số kỹ thuật không có chuyển đổi tiềm ẩn khác với chuyển đổi mặc định mà bạn nhận được với Suite, đặt giá trị === trên mọi thứ. WordSpec có một vài chuyển đổi tiềm ẩn để đặt các từ sau chuỗi, do đó, nó có nhiều rủi ro hơn cho xung đột chuyển đổi ngầm định.

Chỉ định cho phép lồng nhau vô hạn. WordSpec chỉ cung cấp 3 cấp độ lồng nhau.

Spec cung cấp cho bạn thêm tự do về cách bạn cấu trúc văn bản của đặc tả của bạn (mặc dù không tự do nhiều như FreeSpec). WordSpec khá quy định về cách bạn sẽ cấu trúc văn bản của bạn.

WordSpec là DSLish hơn Spec. Một số người thích điều đó.

Nếu mọi người không có sở thích, tôi chỉ cho họ là Spec là lựa chọn mặc định, vì nó ít ngầm hơn theo mặc định, tự do hơn, ít DSL hơn và làm tổ hơn, nhưng chủ yếu là lựa chọn này là vấn đề.

+0

Cảm ơn bạn rất nhiều! Đó chính xác là loại so sánh mà tôi đã hy vọng. – Integrator

+0

Tôi sẽ thêm cập nhật nhỏ - 'Spec' trong các phiên bản mới hơn sẽ không được dùng nữa và' FunSpec' sẽ được sử dụng thay thế. – monnef

Các vấn đề liên quan