Sử dụng Microsoft Test Framework và Moq Tôi đang cố xác minh xem phương thức log4net có được gọi hay không.Thiết lập moq và xác minh rằng phương thức được gọi là
[TestMethod()]
public void Log_Info_When_Stuff_Is_Done()
{
SampleClass sampleObject = new SampleClass();
Mock<log4net.ILog> logMockObject = new Mock<log4net.ILog>();
sampleObject.Log = logMockObject.Object;
sampleObject.DoStuffAndLogInfo();
logMockObject.Verify(moqLog => moqLog.Info("do stuff got called"), Times.AtLeastOnce());
}
tôi nhận được một ngoại lệ vào Xác minh cuộc gọi nói rằng
dự kiến gọi trên giả ít nhất một lần, nhưng chưa bao giờ thực hiện : moqLog => moqLog.Info ("làm công cụ đã được gọi là") Chưa thiết lập cấu hình . Không có lời gọi nào được thực hiện.
Tôi đang làm gì sai?
cập nhật sự cố xảy ra với getter cho thuộc tính SampleClas.Log. Tôi luôn quay trở lại LogManager.GetLogger(...);
ngay cả khi thuộc tính đã được đặt thành ILogProxy. Tôi đã được ấn tượng rằng accessor của tài sản sẽ không được gọi vì tôi đã thiết lập một proxy như vậy sampleObject.Log = logMockObject.Object;
là "làm những thứ đã được gọi là" chuỗi chính xác được thông qua để .info? –
'sampleObject.DoStuffAndLogInfo()' làm gì? –
Không. Tham số có quan trọng không? Tôi nghĩ rằng các thông số không quan trọng miễn là bạn đang đi qua một cái gì đó với nó. –