尝试对企业日志进行单元测试

本文关键字:单元测试 日志 企业 | 更新日期: 2023-09-27 18:07:29

我正在尝试对企业日志进行单元测试,以证明创建日志条目等。

我似乎无法让它工作-我得到一个错误的登录配置部分无法在配置源中找到-我认为这与这是一个wpf和应用程序配置不被启动的事实有关,当我从一个类运行一个nunit测试。任何想法吗?

 namespace Nunit
{
    [TestFixture]
    public class NunitTests
    {
        string Path = @"C:'Users'dani'bin'Debug'trace.log";

        [Test]
        public void TestLogCreation()
        {}
}

尝试对企业日志进行单元测试

当你运行NUnit可执行文件时,它会尝试查找它自己的配置文件中找不到的任何配置项。然后在machine中搜索配置项。配置文件。它也没有找到配置项,因此它给出了错误。

您可以通过在machine中添加配置项来解决这个问题。配置文件。

但是这不是单元测试的正确方法。你必须提供一个伪类来读取配置项,而不是从配置文件中读取实际的配置值。

机器。配置文件可以在下面提到的路径找到:

32位

%windir%'Microsoft.NET'Framework'[version]'config'machine.config

64位

%windir%'Microsoft.NET'Framework64'[version]'config'machine.config 

编辑

public interface IConfigReader
{
    string ReadConfigEntry(string keyName);
}
public class ConfigReader : IConfigReader
{
    public string ReadConfigEntry(string keyName)
    {
        return System.Configuration.ConfigurationManager.AppSettings[keyName];
    }
}
public class FakeConfigReader : IConfigReader
{
    public string ReadConfigEntry(string keyName)
    {
        string configValue = string.Empty;
        //provide dummy implementation instead of reading actual .config file
        return configValue;
    }
}

现在创建IConfigReader接口实例。在实际代码中使用ConfigReader实现读取配置值,而单元测试使用FakeConfigReader实现。在FakeConfigReader中,您可以从ReadConfigEntry方法返回任何任意硬编码值。

更简单的方法是在Nunit项目中创建一个app.config文件并复制其中的内容——效果很好