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
)内的私有助手方法内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()
只是一个模拟,向您展示我的想法,我认为助手仅用于测试,而不是生产代码