我正在为View Model类编写一些单元测试.该类的构造函数注入ILoggerService.该接口定义了一个返回ILogger的方法GetLog.类似于下面的东西,它代表一个实现ILoggable的类: –
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,我无法看到.
提前致谢.