我想创建测试,测试所有参数组合,排除一个具有不同预期结果的组合。
到目前为止,我已经提出了
[TestCase(false, false, ExpectedResult = false)]
[TestCase(false, true, ExpectedResult = false)]
[TestCase(true, false, ExpectedResult = false)]
[TestCase(true, true, ExpectedResult = true)]
public bool Test(bool paramA bool paramB)
{
var target = new MyComand(paramA, paramB);
return target.CanExecute();
}
// this class is made up, but shows the basic concept
public class MyCommand
{
bool _preConditionA;
bool _preConditionB;
public MyCommand(bool preConditionA, bool preConditionB)
{
_preConditionA = preConditionA;
_preConditionB = preConditionB;
}
public bool CanExecute()
{
if (_preConditionA == false)
return false;
if (_preConditionB == false)
return false;
return true;
}
}
或者有些疯狂[TestCaseSource]
。
这两个案例对我个人的可读性都有疑问。
当参数不仅是布尔值时,这会变得更复杂。
我检查了[Values]
和[Combinatorical]
属性,但它们并不适用于我的案例。
有人知道其他任何解决方法吗?