【问题标题】:Unit testing .net classes: Exception and File.WriteAllText单元测试 .net 类:Exception 和 File.WriteAllText
【发布时间】:2013-12-11 22:43:52
【问题描述】:

我对 .NET 很陌生,尝试对某些类进行单元测试时遇到了一些问题。 我有一个非常简单的 .net 类,编码如下:

using System;

namespace One.Namespace.One
{
     public class ExceptionOne : Exception
    {
    }
}

我可以对它进行单元测试吗?我试过这样的东西,但它不起作用

[TestMethod()]
[ExpectedException(typeof(ExceptionOne))]
public void ExceptionOneConstructorTest()
{
 ExceptionOne target = new ExceptionOne();
}

我的另一门课是这样的

using System.IO;

namespace One.Write.One
{
    public class Writefile
    {
        public void Save(int result)
        {
            File.WriteAllText(@"c:\db.txt",result.ToString());
        }
    }
}

检查文件内部是否写入了正确的结果是正确的?

【问题讨论】:

  • 我不知道您的 ExceptionOne 与写入文件有何关联。无论如何 - ExpectedException 属性检查测试方法是否抛出异常(这与实例创建不同)
  • 感谢您的回答。它们是两个不同的类,我不知道如何进行单元测试
  • 就目前的状态而言,它不需要单元测试。几乎没有任何行为需要测试。你需要的是一个整合
  • 在我看来这不是单元测试问题,如果文件读取失败,您需要抛出异常。您的问题中缺少该代码吗?然后我们可以看看测试问题。
  • 它们是我要测试的两个不同的类。如果我调用 ExceptionOne 构造函数,我想检查是否引发异常,并且我想测试作为输入给出的正确结果是否写入文件中。两种不同的测试

标签: .net visual-studio-2010 unit-testing


【解决方案1】:
[TestMethod()]
[ExpectedException(typeof(ExceptionOne))]
public void ExceptionOneConstructorTest()
{
 throw new ExceptionOne();
}

您当前的代码没有抛出异常。它只是实例化您的异常类的一个实例。如果您想测试是否可以抛出异常,请尝试上述方法。

在您的第二个案例中: 您可以通过读回文件内容并与原始内容进行比较来测试文件写入是否成功。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 2010-09-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多