【发布时间】:2017-11-06 05:09:06
【问题描述】:
我正在为MyMethod1、MyMethod2、...的几种方法中的每一种编写单元测试
对于每种方法,我想测试一个引发特定异常的案例和一个没有引发特定异常的案例。
我现在所做的是将每个方法的两个案例组合成一个测试方法:
[TestMethod]
[TestCategory("Unit")]
public void MyTest()
{
SetupExceptionCase();
try
{
MyMethod1();
Assert.Fail();
}
catch (InvalidDataException) { }
SetupNonExceptionCase();
try
{
MyMethod1();
}
catch (InvalidDataException)
{
Assert.Fail();
}
}
如果我想使用ExpectedException 属性来替换更长的try...catch... 控件,如https://stackoverflow.com/a/933627/156458 中所建议的那样,
我是否需要将我的测试方法分成两个测试方法,每个测试方法用于一个案例?
如果是,在我不希望我的方法引发异常的情况下如何使用该属性?
-
有没有什么方法我不必拆分它,因为在一个测试方法中对要测试的相同方法的两个案例进行分组可以很好地分开要测试的不同方法的测试?
谢谢。
【问题讨论】:
标签: c# unit-testing