Tôi có một vài lớp Groovy trong ứng dụng của mình, dưới src/groovy
. Các lớp thử nghiệm liên quan nên đi đâu và chúng có nên sử dụng GroovyTestCase
hoặc các mixin (TestFor
) không?Tôi nên đặt các trường hợp thử nghiệm cho các lớp Groovy trong ứng dụng Grails ở đâu?
Trả lời
Bạn có thể chọn giữa một bài kiểm tra đơn vị hoặc tích hợp cho lớp của bạn. Từ docs bạn có thể thấy sự khác biệt giữa chúng:
Unit Test
Đơn vị kiểm tra là kiểm tra tại "đơn vị" cấp. Nói cách khác, bạn đang thử nghiệm các phương pháp riêng lẻ hoặc các khối mã mà không xem xét cho cơ sở hạ tầng xung quanh. Các bài kiểm tra đơn vị thường chạy mà không có sự hiện diện của tài nguyên vật lý liên quan đến các cơ sở dữ liệu I/O như vậy, các kết nối hoặc tệp socket . Điều này là để đảm bảo chúng chạy nhanh nhất có thể vì phản hồi nhanh là điều quan trọng.
Tích hợp thử nghiệm
kiểm tra tích hợp khác với kiểm tra đơn vị trong đó bạn có đầy đủ quyền truy cập đối với môi trường Grails trong vòng thử nghiệm.
Vì vậy, nếu bạn cần truy cập cơ sở dữ liệu hoặc cần môi trường đầy đủ, hãy thực hiện kiểm tra tích hợp. Nếu không, hãy tạo một bài kiểm tra đơn vị (điều này sẽ sử dụng cơ sở dữ liệu trong bộ nhớ).
@TestFor
được thiết kế để sử dụng trong các bài kiểm tra đơn vị, vì điều này sẽ mô phỏng cơ bản (xem GrailsUnitTestMixin
). Nếu bạn chọn kiểm tra tích hợp, không sử dụng chú thích.
Đặt chúng trong test/unit
. Nếu họ cần bối cảnh mùa xuân hoặc phiên ngủ đông, hãy đặt chúng trong test/integration
. Bạn có thể sử dụng GroovyTestCase
hoặc mixins, nhưng chúng hoàn toàn không bắt buộc. Các bài kiểm tra chỉ cần làm theo các công ước sau:
- tên lớp phải kết thúc với
Tests
hoặcTest
- các phương pháp thử nghiệm phải một trong hai bắt đầu với
test
hoặc được chú thích với@Test
chú thích JUnit của