ADDENDUM: Như câu trả lời khác đã nêu, mục đích của .Verifiable
là nhập Setup
một tập hợp các " Verify(...)
cuộc gọi hoãn " mà sau đó có thể được kích hoạt thông qua mock.Verify()
.
Sự giải thích của OP làm rõ rằng đây là mục tiêu và vấn đề duy nhất là tìm ra lý do tại sao nó không hoạt động, nhưng như @Liam đã đề xướng, câu trả lời cũng thực sự nên chạm vào điều này: - Các trường hợp sử dụng quan trọng theo tôi có thể thấy là:
- duy trì độ KHÔ giữa a
mock.Setup()
vàmock.Verify
- cho phép một người ngắt kết nối cấu hình xác minh khỏi
Verify
chính cuộc gọi thực tế (ví dụ: bạn có thể thiết lập nó trong một phương thức trợ giúp khác)
... và trở lại câu trả lời của tôi, câu nói ngắn gọn có hiệu quả "hãy cẩn thận vì những ưu điểm ở trên thường được coi là vượt trội hơn bởi ảnh hưởng của việc đạt được những mục tiêu đó đối với tính dễ đọc và khả năng duy trì của các bài kiểm tra dựa quá nhiều vào các cấu trúc như vậy"
GỐC: Lưu ý rằng nếu có thể, thay vào đó, người ta nên tuân theo bố cục AAA và do đó người ta nên thực hiện mock.Verify( expression )
các lệnh gọi rõ ràng sau khi công việc đã hoàn thành, thay vì mock.Setup( ... ).Verifiable()
được ghép nối với một mock.Verify()
hoặcmock.VerifyAll()
bất cứ nơi nào có thể (tín dụng: @kzu ).