Tôi đang lái thử một phương pháp là tạo ra một tập hợp các đối tượng dữ liệu. Tôi muốn xác minh rằng các thuộc tính của các đối tượng đang được đặt chính xác. Một số thuộc tính sẽ được đặt thành cùng một thứ; những cái khác sẽ được đặt thành một giá trị phụ thuộc vào vị trí của chúng trong bộ sưu tập. Cách tự nhiên để làm điều này dường như là với một vòng lặp. Tuy nhiên, Roy Osherove khuyến cáo không nên sử dụng logic trong các bài kiểm tra đơn vị ( Nghệ thuật kiểm tra đơn vị , 178). Anh ta nói:
Một bài kiểm tra có chứa logic thường là kiểm tra nhiều thứ cùng một lúc, điều này không được khuyến khích, vì bài kiểm tra ít dễ đọc hơn và dễ vỡ hơn. Nhưng logic kiểm tra cũng thêm sự phức tạp có thể chứa một lỗi ẩn.
Các thử nghiệm, theo nguyên tắc chung, là một chuỗi các cuộc gọi phương thức không có luồng điều khiển, thậm chí không
try-catch
và với các cuộc gọi khẳng định.
Tuy nhiên, tôi không thể thấy bất cứ điều gì sai với thiết kế của mình (làm thế nào khác để bạn tạo một danh sách các đối tượng dữ liệu, một số giá trị của chúng phụ thuộc vào vị trí của chúng trong chuỗi? Có cái gì đó không thân thiện với thiết kế của tôi không? Hay là quá cứng nhắc dành cho việc giảng dạy của Osherove? Hoặc có một số phép thuật thử nghiệm đơn vị bí mật mà tôi không biết về việc giải quyết vấn đề này? (Tôi đang viết bằng C # / VS2010 / NUnit, nhưng tìm kiếm câu trả lời không biết ngôn ngữ nếu có thể.)
in
), nếu thử nghiệm là "Frob đã được thêm thành công vào bộ sưu tập hiện có".
toString()
là Bộ sưu tập và so sánh với những gì nó nên có. Đơn giản và hiệu quả.