相关疑难解决方法(0)

如何将此文件加载到NUnit测试中?

我有以下IntegrationTest项目结构......

在此输入图像描述

如果我想使用测试数据126.txt中的NUnit Test,我怎么加载普通的txt文件的数据?

注意:文件是-linked-,我正在使用c#(如图所示).

欢呼:)

.net c# testing tdd nunit

40
推荐指数
4
解决办法
3万
查看次数

如何对需要特定文件的类进行单元测试

我目前正在努力学习正确的单元测试.所以现在我正在尝试为一个类编写单元测试,该类应该将XML-File中的数据映射到正确的对象.当然,该类的所有功能都取决于相应XML文件的存在.XML文件加载在类的构造函数中.

我正在使用C#和NUnit.到目前为止,我有两个测试:

[Test]
public void ShouldAllowInstanceToBeCreatedWhenXMLFileIsPresent()
{
    if (File.Exists(SettingsReader.XML_SETTINGS_PATH))
    {
        SettingsReader settingsReader = new SettingsReader();
        Assert.AreNotEqual(null, settingsReader);
    }
}

[Test]
[ExpectedException("Telekanzlei.Clientmanager.XMLDataLayer.XMLFileNotFoundException")]
public void ShouldThrowExceptionWhenXMLFileIsNotPresent()
{
    if (!File.Exists(SettingsReader.XML_SETTINGS_PATH))
    {
        SettingsReader settingsReader = new SettingsReader();
    }
        else
            throw new XMLFileNotFoundException();
    }
Run Code Online (Sandbox Code Playgroud)

我不确定在测试中检查文件是否存在是正确的方法,所以对这些测试的任何建议也是受欢迎的.但我的问题是,如何进行以下测试.如果XML文件不存在,显然所有后续测试都将失败.

那么我是否认为XML文件存在,同时请记住,失败的测试只是意味着它不是?这对我来说似乎不对.

是否有一般模式来处理这样的问题?

感谢任何帮助

编辑:重写第二个测试,因为如果文件实际存在则失败...

edit2:可能有助于告诉你,SettingsReader实际上做了什么.到目前为止它看起来像这样:

public class SettingsReader
{
    public static readonly string XML_SETTINGS_PATH = "C:\\Telekanzlei\\Clientmanager_2.0\\Settings.xml";

    public XElement RootXElement { get; private set; }

    public SettingsReader()
    {
        if (!File.Exists(XML_SETTINGS_PATH))
            throw new XMLFileNotFoundException();
        using (var fs = File.OpenRead(XML_SETTINGS_PATH))
        {
            RootXElement = …
Run Code Online (Sandbox Code Playgroud)

c# nunit unit-testing

10
推荐指数
2
解决办法
4820
查看次数

标签 统计

c# ×2

nunit ×2

.net ×1

tdd ×1

testing ×1

unit-testing ×1