Khi nghiên cứu các thực tiễn tốt nhất để kiểm tra đơn vị để giúp tập hợp các hướng dẫn cho tổ chức của mình, tôi đã đặt ra câu hỏi là nên tách riêng các đồ đạc thử nghiệm (các lớp kiểm tra) hay giữ tất cả các bài kiểm tra cho một lớp trong một tệp.
Fwiw, tôi đang đề cập đến "các bài kiểm tra đơn vị" theo nghĩa thuần túy rằng chúng là các bài kiểm tra hộp trắng nhắm vào một lớp duy nhất, một xác nhận cho mỗi bài kiểm tra, tất cả các phụ thuộc bị chế giễu, v.v.
Một kịch bản ví dụ là một lớp (gọi nó là Tài liệu) có hai phương thức: CheckIn và CheckOut. Mỗi phương thức thực hiện các quy tắc khác nhau, vv kiểm soát hành vi của họ. Theo quy tắc một xác nhận cho mỗi thử nghiệm, tôi sẽ có nhiều thử nghiệm cho mỗi phương pháp. Tôi có thể đặt tất cả các bài kiểm tra trong một DocumentTests
lớp duy nhất với tên như CheckInShouldThrowExceptionWhenUserIsUnauthorized
và CheckOutShouldThrowExceptionWhenUserIsUnauthorized
.
Hoặc, tôi có thể có hai lớp kiểm tra riêng biệt: CheckInShould
và CheckOutShould
. Trong trường hợp này, tên thử nghiệm của tôi sẽ được rút ngắn nhưng chúng sẽ được sắp xếp để tất cả các thử nghiệm cho một hành vi (phương pháp) cụ thể được kết hợp với nhau.
Tôi chắc chắn có những người ủng hộ và tiếp cận và tự hỏi liệu có ai đã đi theo con đường với nhiều tệp không và nếu có thì tại sao? Hoặc, nếu bạn đã chọn cách tiếp cận tập tin duy nhất, tại sao bạn cảm thấy nó tốt hơn?
testResponseContainsSuccessTrue()
, testResponseContainsMyData()
và testResponseStatusCodeIsOk()
. Bạn sẽ có chúng trong một đĩa đơn testResponse()
trong đó có ba khẳng định: assertEquals(200, response.status)
, assertEquals({"data": "mydata"}, response.data)
vàassertEquals(true, response.success)