在TestMethods的方法调用中使用Assert.Fail是否正确

时间:2014-06-24 02:13:57

标签: c# unit-testing

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

  1. 在Test类(IsFileExist
  2. 中的私有帮助器方法内部
  3. 帮助程序类(LoadData

    的方法内部
    • 这样可以吗?或者这超出了单元测试框架的使用范围?
    • 如果我在Assert.Fail执行时这样做,它会为测试方法展开整个堆栈,或者只是为该特定方法展开堆栈?
  4. 助手类

    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");
          }
        }
    }
    

1 个答案:

答案 0 :(得分:2)

Assert位于Microsoft.VisualStudio.TestTools.UnitTesting名称空间中的{{1}}应该作为一个暗示,不应该在单元测试中使用它。< / p>

如果您想根据代码中的条件失败,请抛出异常。