Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# TestMethods在方法调用内部使用Assert.Fail是否正确_C#_Unit Testing - Fatal编程技术网

C# TestMethods在方法调用内部使用Assert.Fail是否正确

C# TestMethods在方法调用内部使用Assert.Fail是否正确,c#,unit-testing,C#,Unit Testing,我计划在单元测试中以这种方式使用Assert.Fail 在测试类(IsFileExist)内的私有助手方法内 在helper类的方法中(LoadData) 这样行吗?或者这是单元测试框架之外的用法 如果我在Assert.Fail执行时这样做,它是为测试方法展开整个堆栈,还是仅为该特定方法展开堆栈 助手类 public class DataLoader { public void LoadData(string file) { if (Util.readfile(file))

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

  • 在测试类(
    IsFileExist
    )内的私有助手方法内
  • 在helper类的方法中(
    LoadData

    • 这样行吗?或者这是单元测试框架之外的用法
    • 如果我在Assert.Fail执行时这样做,它是为测试方法展开整个堆栈,还是仅为该特定方法展开堆栈
  • 助手类

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

    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
    位于
    Microsoft.VisualStudio.TestTools.UnitTesting
    名称空间中,这一事实应该暗示您不应该在单元测试之外使用它


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

    @Grant Winney:是的,仅通过测试方法
    Util.readfile()
    只是一个模拟,向您展示我的想法,我认为助手仅用于测试,而不是生产代码