使用Assert正确吗?在TestMethods调用的方法内部失败

本文关键字:调用 方法 内部 失败 TestMethods Assert 使用 | 更新日期: 2023-09-27 18:10:04

我计划在我的单元测试中以这种方式使用Assert.Fail

  1. 在Test类(IsFileExist)中的私有helper方法中
  2. helper类(LoadData)的方法内部

    • 这样可以吗?或者这超出了单元测试框架的使用范围?
    • 如果我这样做了,当Assert。Fail execute是对test方法展开整个堆栈还是只对特定方法展开堆栈?

助手类

public class DataLoader
{
  public void LoadData(string file)
  {
    if (Util.readfile(file)) {
      Assert.Fail("Unable to read the file.");
    }
  }
}
测试类

[TestClass]
public class testFileData
{            
    [TestMethod]
    public void TestData()
    {
      string file = "C:''data.txt";
      this.IsFileExist(file);
      DataLoader dl = new DataLoader();
      dl.LoadData(file);
    }
    private void IsFileExist(string file)
    {
      if(!Util.IsFileExist(file)) {
        Assert.Fail("File not exist");
      }
    }
}

使用Assert正确吗?在TestMethods调用的方法内部失败

Assert位于Microsoft.VisualStudio.TestTools.UnitTesting名称空间的事实应该作为一个提示,不,您不应该在单元测试之外使用它。

如果你想根据代码中的条件失败,抛出一个异常。