【发布时间】:2019-03-13 13:04:29
【问题描述】:
我有一个类,想测试方法是否被调用,记录器会记录。
public class LoggerAdapter<TheClassWhichHasTheMethod>: ILoggerAdapter<etc>
这是我制作的适配器。所以我在记录器类中有我正在使用和需要的方法,并将它们放在适配器记录器类中
public void MethodOne(param1, param2, param3, param4)
这个 void 方法自己调用适配器内部的下一个方法:
public void MethodTwo(param1, param2, param3, param4)
之后,日志记录完成。但是等等,还有更多。记录器正在执行其工作的方法如下:
public async Task Execute()
{
await //some logic
//some more logic
Here the logger does its job: _logger.MethodOne(param1, param2, param3)
//After logging finishes, more logic follows
}
现在,适配器的接口需要扩展ILogger,因为我需要 ILogger 作为我的param 之一。问题是,在我完成Act 部分之后:
//await _classInstance.Execute();
由于我正在测试一个 void 方法,所以会有一些超时。好的,超时结束,但之后我不知道如何验证记录器是否已记录,即 _classInstance.Execute() 启动,记录器调用 MethodOne,后者调用 MethodTwo,然后它完成。
【问题讨论】:
标签: c# .net unit-testing nunit adapter