Gần đây tôi đã đưa ra quy ước sau đây để đặt tên cho các bài kiểm tra của mình, các lớp của chúng và chứa các dự án để tối đa hóa mô tả của chúng:
Hãy nói rằng tôi đang thử nghiệm Settings
lớp trong một dự án trong MyApp.Serialization
không gian tên.
Đầu tiên tôi sẽ tạo một dự án thử nghiệm với MyApp.Serialization.Tests
không gian tên.
Trong dự án này và tất nhiên không gian tên tôi sẽ tạo một lớp có tên IfSettings
(được lưu dưới dạng IfSinstall.cs ).
Hãy nói rằng tôi đang thử nghiệm SaveStrings()
phương pháp. -> Tôi sẽ đặt tên cho bài kiểm tra CanSaveStrings()
.
Khi tôi chạy thử nghiệm này, nó sẽ hiển thị tiêu đề sau:
MyApp.Serialization.Tests.IfSettings.CanSaveStrings
Tôi nghĩ rằng điều này cho tôi biết rất rõ, những gì nó đang thử nghiệm.
Tất nhiên điều hữu ích là trong tiếng Anh, danh từ "Tests" giống như động từ "tests".
Không có giới hạn cho sự sáng tạo của bạn trong việc đặt tên cho các bài kiểm tra, để chúng tôi có được các tiêu đề câu đầy đủ cho chúng.
Thông thường tên Test sẽ phải bắt đầu bằng một động từ.
Những ví dụ bao gồm:
- Phát hiện (ví dụ
DetectsInvalidUserInput
)
- Ném (ví dụ
ThrowsOnNotFound
)
- Sẽ (ví dụ
WillCloseTheDatabaseAfterTheTransaction
)
Vân vân.
Một lựa chọn khác là sử dụng "cái đó" thay vì "nếu".
Cái sau giúp tôi tiết kiệm tổ hợp phím và mô tả chính xác hơn những gì tôi đang làm, vì tôi không biết, rằng hành vi được thử nghiệm có mặt, nhưng đang thử nghiệm nếu có.
[ Chỉnh sửa ]
Sau khi sử dụng quy ước đặt tên ở trên lâu hơn một chút, tôi đã thấy rằng tiền tố If có thể gây nhầm lẫn khi làm việc với các giao diện. Nó chỉ xảy ra như vậy, rằng lớp thử nghiệm IfSerializer.cs trông rất giống với giao diện ISerializer.cs trong "Tab mở tệp". Điều này có thể trở nên rất khó chịu khi chuyển đổi qua lại giữa các bài kiểm tra, lớp được kiểm tra và giao diện của nó. Kết quả là bây giờ tôi sẽ chọn That over If làm tiền tố.
Ngoài ra, bây giờ tôi sử dụng - chỉ cho các phương thức trong các lớp thử nghiệm của mình vì nó không được coi là thực tiễn tốt nhất ở bất kỳ nơi nào khác - "_" để phân tách các từ trong tên phương thức thử nghiệm của tôi như trong:
[Test] public void detects_invalid_User_Input()
Tôi thấy điều này để dễ đọc hơn.
[ Kết thúc chỉnh sửa ]
Tôi hy vọng điều này sẽ sinh ra thêm một số ý tưởng, vì tôi xem xét việc đặt tên các bài kiểm tra có tầm quan trọng lớn vì nó có thể giúp bạn tiết kiệm rất nhiều thời gian mà nếu không đã cố gắng để hiểu các bài kiểm tra đang làm gì (ví dụ như sau khi tiếp tục một dự án sau khi gián đoạn kéo dài) .