是否可以模拟 NLog 日志方法?

编程入门 行业动态 更新时间:2024-10-22 11:09:05
本文介绍了是否可以模拟 NLog 日志方法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

是否可以/容易使用 Rhino Mocks 或类似工具模拟 NLog 日志方法?

解决方案

你只能模拟虚方法.但是,如果您创建一些用于日志记录的接口,然后使用 NLog 实现它,您可以使用依赖注入,并在您的测试中使用模拟接口来查看被测系统 (SUT) 是否正在记录您希望它记录的内容.

公共类 SUT{私有只读 ILogger 记录器;SUT(ILogger logger) { this.logger = logger;}MethodUnderTest() {//...logger.LogSomething();//...}}//在测试中var mockLogger = new MockLogger();var sut = new SUT(mockLogger);sut.MethodUnderTest();Assert.That("预期的日志消息", Is.Equal.To(mockLogger.LastLoggedMessage));

Is it possible/easy to mock NLog log methods, using Rhino Mocks or similar?

解决方案

You can only mock virtual methods. But if You create some interface for logging and then implement it using NLog You can use dependency injection and in Your tests use mocked interface to see if system under test (SUT) is logging what You expect it to log.

public class SUT { private readonly ILogger logger; SUT(ILogger logger) { this.logger = logger;} MethodUnderTest() { // ... logger.LogSomething(); // ... } } // and in tests var mockLogger = new MockLogger(); var sut = new SUT(mockLogger); sut.MethodUnderTest(); Assert.That("Expected log message", Is.Equal.To(mockLogger.LastLoggedMessage));

更多推荐

是否可以模拟 NLog 日志方法?

本文发布于:2023-10-31 04:18:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1544979.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:方法   日志   NLog

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!