标签: liblog

LibLog - 断言对记录器的调用

使用LibLog时,是否可以断言对记录器的调用?鉴于wiki列出了以下用法示例:

public class MyClass
{
    private static readonly ILog Logger = LogProvider.For<MyClass>(); 
}
Run Code Online (Sandbox Code Playgroud)

这里的记录器是一个隐藏在消费者手中的实现细节,这是使用这个库的最大好处.这样库消费者就不必担心如何实例化记录器.看看这篇博文:

http://dhickey.ie/2015/06/capturing-log-output-in-tests-with-xunit2/

似乎添加了大量的锅炉板以捕获日志输出,我不完全确定该方法,因为它在单元测试中也使用了重定向的Serilog输出,这看起来很奇怪,因为库应该只依赖关于日志抽象?

我目前唯一能想到的选择是:

注入记录器 - 这对于库的使用者来说可能是奇怪的,然后每个库都会带有它自己的ILogger需要注入的定义,从而破坏了抽象的优点.

连接到真实的日志记录框架 - 将LibLog的当前LogProvider设置为使用Log4Net或类似,然后以某种方式尝试将模拟/存根记录器注入Log4Net,并通过代理断言调用.

任何相对简单的断言对记录器的调用的方法都会受到赞赏,但我怀疑并行测试执行会导致问题,即使可以在上面的记录器上断言调用?

c# unit-testing liblog

6
推荐指数
1
解决办法
724
查看次数

标签 统计

c# ×1

liblog ×1

unit-testing ×1