Kur*_*oro 9 c# unit-testing mocking lazy-evaluation nsubstitute
//Assert
Lazy<INotificationService> notificationService = Substitute.For<Lazy<INotificationService>>();
Service target = new Service(repository, notificationService);
//Act
target.SendNotify("Message");
//Arrange
notificationService.Received().Value.sendNotification(null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
上面的代码抛出异常.
lazily-initialized类型没有公共的无参数构造函数
我正在使用C#4.0和NSubstitute 1.2.1
Dav*_*pak 10
根据@ sanosdole的评论,我建议使用一个真实的Lazy实例来返回你的替代品.就像是:
var notificationService = Substitute.For<INotificationService>();
var target = new Service(repository, new Lazy<INotificationService>(() => notificationService));
target.SendNotify("Message");
notificationService.ReceivedWithAnyArgs().sendNotification(null, null, null, null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2272 次 |
| 最近记录: |