Assert.Equals
, giống như phương pháp lớp học dựa trên của nó Object.Equals
, là hoàn toàn hữu ích để so sánh các đối tượng. Tuy nhiên, không phương pháp nào hữu ích cho việc phát hiện và báo cáo độc lập hoặc lỗi trong thử nghiệm đơn vị, vì Object.Equals
trả về một boolean thay vì ném nếu các giá trị không bằng nhau. Đây là một vấn đề nếu được sử dụng như thế này trong một thử nghiệm đơn vị:
Assert.Equals(42, ComputeMeaningOfLife());
Bên cạnh những vấn đề về kiểm tra đơn vị này có thể chạy :-) quá lâu, thử nghiệm này sẽ âm thầm thành công ngay cả khi phương pháp Tính cung cấp kết quả sai . Phương pháp phù hợp để sử dụng là Assert.AreEqual
, không trả về bất kỳ thứ gì, nhưng ném ngoại lệ nếu các tham số không bằng nhau.
Assert.Equals
đã được thêm vào để mã như trong ví dụ trên không rơi trở lại Object.Equals
và âm thầm cho phép kiểm tra đơn vị. Thay vào đó, khi được gọi từ một bài kiểm tra đơn vị, Assert.Equals
luôn ném một ngoại lệ nhắc bạn không sử dụng nó.
Nguồn
2013-12-30 12:13:32
Lưu ý rằng '' CollectionAssert'' có cùng một lỗ hổng khi phơi bày''Object.Equals''. Không giống '' Assert'', '' CollectionAssert'' không định nghĩa lại phương thức, do đó bạn không nhận được thất bại kiểm tra hữu ích khi bạn chạy thử nghiệm mà bạn nhận được từ việc chạy thử nghiệm chứa '' Assert.Equals''. – vvnurmi