当有多种情况时如何对单元进行单元测试?

时间:2012-06-25 14:52:56

标签: unit-testing

我有这段代码

function aFunctionForUnitTesting(aParameter)
    return (aFirstCheck(aParameter) && 
           aOtherOne(aParameter) && 
           aLastOne(aParameter)
    );

我如何对此进行单元测试?

我的问题如下,假设我创建了这个单元测试:

FailWhenParameterDoesntFillFirstCheck()
{
Assert.IsFalse(new myObject().aFunctionForUnitTesting(aBadParameter));
}

我怎么知道这个测试是好的,因为第一次检查(因为第二次或第三次检查可能会失败,所以我的函数firstCheck可能会被窃听)?

2 个答案:

答案 0 :(得分:0)

您需要传递参数的不同值,该值将通过第一次检查并在第二次检查时失败。

FailWhenParameterDoesntFillFirstCheck()
{
    Assert.IsFalse(new myObject().aFunctionForUnitTesting(aBadParameterThatPassesFirstCheckButFailsTheSecond));
}

答案 1 :(得分:0)

您没有 来编写所有这些案例。这取决于您想要的代码覆盖范围。您可以在四个测试中获得“修改条件/决策覆盖率”: - 所有参数都可以 - 每个参数中的一个未通过测试

'多条件覆盖'需要8个测试。除非我在空中客车公司工作,否则不确定我会打扰: - )