Bạn có thể sử dụng AssertWasCalled()
trong Rhino.Mocks
kỳ vọng của bạn là thử nghiệm nên dừng lại nếu phương pháp này được gọi và không nên chạy các dòng sau có nghĩa là bạn đã viết bài kiểm tra sai. Có khẳng định (Nunit hoặc cách khác) là dòng cuối cùng của bài thi và chia bài kiểm tra. Có thể bạn đang thử nghiệm hai thứ và đó không phải là thử nghiệm đơn vị. Không có loại phân nhánh như vậy trong các thử nghiệm. Tất cả các dòng trong các thử nghiệm nên được thực hiện. Và lý tưởng, mọi thử nghiệm chỉ nên có một khẳng định.
Với loại luồng bạn đang mong đợi, bạn sẽ mất phản hồi bạn nhận được từ các thử nghiệm khi chúng không thành công. Bạn không biết, chỉ cần nhìn vào tên thử nghiệm, những gì không thành công.
Vì vậy, bạn muốn giả lập có thể báo hiệu rằng thử nghiệm đã hoàn tất? – rerun
Có; lý do là nếu tôi không 'arrrange' một vài đối tượng được chạm sau khi gọi phương thức này, tôi có một ngoại lệ. Và tôi không tìm thấy nó có ý nghĩa để mở rộng thử nghiệm của tôi chỉ để ngăn chặn một ngoại lệ trong khi tôi đang convinved rằng thử nghiệm được thông qua bằng cách gọi phương pháp dự kiến đó. – pencilCake
Tôi nghĩ bạn nên sửa thiết kế của mình hơn là làm xáo trộn dòng chảy thực hiện của các bài kiểm tra của bạn. Nếu không biết thêm chi tiết thì thật khó để nói vấn đề là gì, nhưng có vẻ như bạn có một phương pháp làm nhiều thứ (thứ bạn đang thử nghiệm cộng với thứ bạn muốn bỏ qua), vi phạm nguyên tắc trách nhiệm duy nhất. – hammar