protected viewmodelBase(ILoggerService loggerService) { Logger = loggerService.GetLog(this); }
我正在尝试对我的CreateNewOrder方法进行单元测试,如下所示:
private voID CreateNewOrder(INewOrderviewmodel newOrderviewmodel) { Logger.Log("Sending Create New Order Message",Logcategory.Info); var createNewOrderMessage = new OrderMessage(newOrderviewmodel); _eventAggregator.GetEvent<CreateOrderEvent>().Publish(createNewOrderMessage); }
我将如何模拟ILoggerService以便返回有效的Logger?目前,我的Unit测试会抛出一个NullReferenceExeception.
我正在用Moq做我的嘲笑.
我想我需要做一些事情
var loggerService = new Mock<ILoggerService>(); loggerService.Setup(svc => svc.GetLog(??))
但是,如果不让我的测试类实现ILoggable,我无法看到.
提前致谢.
解决方法 我不确定GetLog方法参数的类型是什么,但我认为它类似于对象,因此记录器服务可以确定请求记录器的类型.您可以使用它来模拟正在设置的方法中的参数,如下所示.var logger = new Mock<ILogger>();var loggerService = new Mock<ILoggerService>();loggerService.Setup(c => c.GetLog(It.IsAny<object>()) .Returns(logger.Object);
然后将logger.Object传递给任何需要ILoggerService的方法或类型.
总结以上是内存溢出为你收集整理的c# – 如何使用Moq模拟ILogger / ILoggerService全部内容,希望文章能够帮你解决c# – 如何使用Moq模拟ILogger / ILoggerService所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)