认真测试两个条件

时间:2019-02-05 11:13:20

标签: c# shouldly

我在课堂上有一个财产

public class User {
    public string FiscalCode {get; set;}
}

我想用两个条件测试财产会计代码。 如果taxcode为null或使用某种方法验证了taxcode,则测试正常。

public bool FiscalCodeIsCorrect(string fiscalcode) 
{
    ....
}

如果两个条件之一都经过验证,我应该如何单行测试?

我想在测试项目中使用此条件,以便代码行可以

user.FiscalCode.ShouldBeOneOf()

但是我不能因为nullstring是两种不同的类型。

3 个答案:

答案 0 :(得分:6)

ShouldBeOneOf无法处理函数,所以我认为简单的方法是使用ShouldBeTrue

(FiscalCode == null || FiscalClodeIsCorrect(FiscalCode)).ShouldBeTrue();

答案 1 :(得分:2)

我认为您可以只使用基本的console.log()

||

if ( FiscalCode == null || FiscalCodeIsCorrect(FiscalCode) ) { //something } 是逻辑或运算符。如果至少一个操作数的值为||,则此值为true。另外,请注意,它确实会短路,这意味着如果trueFiscalCode,它将根本不会调用null

答案 2 :(得分:0)

@Martin Zikmund sugessted也是正确的,但是在您的情况下,NullFiscalCodeIsCorrect应该都可以。因此,将null验证逻辑放入FiscalCodeIsCorrect应该是一个更好的解决方案,那么您就不必每次都验证是否为null。 所以这就是我的意思

public bool FiscalCodeIsCorrect(string fiscalcode) 
{
    if (fiscalcode == null)
       return true;
    //....You code here
}

现在您只需要打hack

if (FiscalCodeIsCorrect(FiscalCode) )
{
   //something
}