2010-11-16 38 views
10

Tôi đang học Scala ngay bây giờ. Tôi thấy có 2 khung kiểm tra ở đó, ScalaTest và Specs. Vấn đề duy nhất của tôi là tôi vẫn không thoải mái với ngôn ngữ để quyết định cái nào tốt hơn. Ngoài ra tôi đã từng viết các bài kiểm tra trước khi viết mã, tại thời điểm này tôi không có ý tưởng rõ ràng về cách thực hiện nó trong lập trình hàm. Lý tưởng nhất là tôi muốn học Scala theo kiểu TDD, có tài nguyên nào về nó không?tìm hiểu Scala với TDD

Trả lời

7

Có một chức năng koan có thể là thứ bạn đang tìm kiếm. Dick tường từ Java Posse bắt đầu một dự án github:

https://github.com/relevance/functional-koans/tree/scala

Bạn cần maven để bắt đầu nó qua mvn package.


Có một Koan:

http://www.scalakoans.org/

Nhờ @MikeHoss!

+0

thingy không rõ ràng với tôi ...:) – Uberto

+0

@uberto, từ những gì tôi có thể thu thập, 'chức năng koans' dường như là bài tập bạn có thể làm để học lập trình chức năng, nhờ đó bạn được thử nghiệm không thành công và bạn phải vượt qua. Đúng không, Michael? –

+0

Vâng, đúng. Có một thiết lập dự án với một loạt các bài kiểm tra đơn vị. Để thực hiện tiến bộ, bạn phải thay đổi bài kiểm tra đơn vị hiện đang thất bại để vượt qua bài kiểm tra. Sau đó, các thử nghiệm tiếp theo thất bại và bạn phải học một cái gì đó mới. Bài kiểm tra đơn vị đầu tiên là tầm thường: 'assert (false) // phải đúng ' –

1

Có thể điều này sẽ giúp bạn. Đó là một yêu cầu tương tự được thực hiện bởi một thành viên khác của ngăn xếp tràn.

Unit testing Scala

+0

không có anwers thực có quá ... – Uberto

1

ScalaTest là đặc điểm phong phú và linh hoạt hơn của hai khung công tác.

Có nói rằng ... Tôi hiện đang ưa thích Thông số kỹ thuật, dường như họ đang làm tốt hơn trong việc cập nhật các bản phát hành Scala mới nhất và tích hợp IntelliJ cũng có vẻ hoạt động tốt hơn.

Thông số cũng có lợi thế, đối với bạn, có API nhỏ hơn để tìm hiểu.

+0

Ngay sau khi 2.8 ra ScalaTest 1.2 đã được phát hành cuối cùng, mà hoạt động tốt với Scala 2,8. Kevin bằng cách nào đó không biết rằng ScalaTest 1.2 đã làm việc với Scala 2.8. ScalaTest 1.3, cũng hoạt động với Scala 2.8, là bản phát hành hiện tại kể từ ngày 20 tháng 3 năm 2011. –

+0

Vào thời điểm tôi viết câu trả lời này, gần đây tôi đã làm việc với rất nhiều ứng viên phát hành 2.8. . Tôi vẫn nhớ lại sự thất vọng khi không thể cập nhật một dự án đơn giản chỉ vì sự phụ thuộc của ScalaTest. Kể từ đó, ScalaTest bắt đầu theo dõi các phụ thuộc của riêng mình thông qua Maven, vì vậy các bản phát hành nhanh chóng có thể xảy ra và tôi không thấy điều này ảnh hưởng đến tôi trong tương lai (tiện dụng để biết, với 2.9.0 sắp phát hành ứng viên) –

2

Vì vậy, hãy thử nghiệm các khung công tác. Có other questions về điều đó, mặc dù tôi muốn chỉ ra rằng đó cũng là ScalaCheck. ScalaCheck không phải là tính năng đầy đủ như Specs và ScalaTest, nhưng, mặt khác, cả hai SpecsScalaTest đều có thể tích hợp với nó.

Cá nhân, tôi thích đi với ScalaCheck, có khả năng rất khác với khung kiểm tra đơn vị mà bạn thường sử dụng. Sự khác biệt này có thể là tốt trong việc giữ cho bạn không nêu rõ các bài kiểm tra theo cách hướng đối tượng.

Bây giờ, với mối quan tâm chính của câu hỏi của bạn: có hướng dẫn Scala giống như TDD không? Tôi không biết bất cứ điều gì, mặc dù answer về functional koans xuất hiện để tiếp cận những gì bạn muốn.

+0

Tôi đã tìm thấy scalacheck hữu ích hơn cho thuật toán gỡ xuống cấp độ thấp và các đơn vị riêng lẻ, nhưng không hữu ích cho BDD và thông số kỹ thuật cấp cao hơn. –

+0

@Kevin Sau đó, bạn không xây dựng máy phát điện đúng cách! :-) –