Hầu hết các câu trả lời ở đây dường như đề cập đến các phương pháp hay nhất về kiểm thử đơn vị nói chung (khi nào, ở đâu, tại sao và cái gì), thay vì thực sự tự viết các bài kiểm tra (như thế nào). Vì câu hỏi có vẻ khá cụ thể về phần "làm thế nào", tôi nghĩ tôi sẽ đăng bài này, trích từ một bài thuyết trình về "chiếc túi nâu" mà tôi đã thực hiện tại công ty của mình.
5 quy luật của bài kiểm tra viết của Womp:
1. Sử dụng tên phương pháp kiểm tra mô tả, dài.
- Map_DefaultConstructorShouldCreateEmptyGisMap()
- ShouldAlwaysDelegateXMLCorrectlyToTheCustomHandlers()
- Dog_Object_Should_Eat_Homework_Object_When_Hungry()
2. Viết các bài kiểm tra của bạn theo kiểu Sắp xếp / Hành động / Khẳng định .
- Mặc dù chiến lược tổ chức này đã tồn tại được một thời gian và được gọi là nhiều thứ, nhưng việc giới thiệu từ viết tắt "AAA" gần đây là một cách tuyệt vời để thực hiện điều này. Làm cho tất cả các bài kiểm tra của bạn nhất quán với kiểu AAA giúp chúng dễ đọc và dễ bảo trì.
3. Luôn cung cấp thông báo lỗi với các Cảnh báo của bạn.
Assert.That(x == 2 && y == 2, "An incorrect number of begin/end element
processing events was raised by the XElementSerializer");
- Một thực hành đơn giản nhưng bổ ích giúp bạn thấy rõ điều gì đã thất bại trong ứng dụng chạy của bạn. Nếu bạn không cung cấp thông báo, bạn sẽ thường nhận được thông báo như "Dự kiến đúng, là sai" trong kết quả lỗi của bạn, điều này khiến bạn phải thực sự đọc bài kiểm tra để tìm ra điều gì sai.
4. Nhận xét lý do thử nghiệm - giả định kinh doanh là gì?
/// A layer cannot be constructed with a null gisLayer, as every function
/// in the Layer class assumes that a valid gisLayer is present.
[Test]
public void ShouldNotAllowConstructionWithANullGisLayer()
{
}
- Điều này có vẻ hiển nhiên, nhưng cách làm này sẽ bảo vệ tính toàn vẹn của các bài kiểm tra của bạn khỏi những người không hiểu lý do đằng sau bài kiểm tra ngay từ đầu. Tôi đã thấy nhiều bài kiểm tra bị xóa hoặc sửa đổi hoàn toàn ổn, đơn giản là vì người đó không hiểu các giả định mà bài kiểm tra đang xác minh.
- Nếu thử nghiệm nhỏ hoặc tên phương pháp đủ mô tả, có thể cho phép bỏ nhận xét.
5. Mọi thử nghiệm phải luôn hoàn nguyên trạng thái của bất kỳ tài nguyên nào mà nó chạm vào
- Sử dụng chế độ giả nếu có thể để tránh giao dịch với tài nguyên thực.
- Việc dọn dẹp phải được thực hiện ở cấp độ thử nghiệm. Kiểm tra không được phụ thuộc vào thứ tự thực hiện.