我在课堂上有一个财产
public class User {
public string FiscalCode {get; set;}
}
我想用两个条件测试财产会计代码。 如果taxcode为null或使用某种方法验证了taxcode,则测试正常。
public bool FiscalCodeIsCorrect(string fiscalcode)
{
....
}
如果两个条件之一都经过验证,我应该如何单行测试?
我想在测试项目中使用此条件,以便代码行可以
user.FiscalCode.ShouldBeOneOf()
但是我不能因为null
和string
是两种不同的类型。
答案 0 :(得分:6)
ShouldBeOneOf
无法处理函数,所以我认为简单的方法是使用ShouldBeTrue
(FiscalCode == null || FiscalClodeIsCorrect(FiscalCode)).ShouldBeTrue();
答案 1 :(得分:2)
我认为您可以只使用基本的console.log()
:
||
if ( FiscalCode == null || FiscalCodeIsCorrect(FiscalCode) )
{
//something
}
是逻辑或运算符。如果至少一个操作数的值为||
,则此值为true
。另外,请注意,它确实会短路,这意味着如果true
是FiscalCode
,它将根本不会调用null
。
答案 2 :(得分:0)
@Martin Zikmund sugessted也是正确的,但是在您的情况下,Null
和FiscalCodeIsCorrect
应该都可以。因此,将null
验证逻辑放入FiscalCodeIsCorrect
应该是一个更好的解决方案,那么您就不必每次都验证是否为null。
所以这就是我的意思
public bool FiscalCodeIsCorrect(string fiscalcode)
{
if (fiscalcode == null)
return true;
//....You code here
}
现在您只需要打hack
if (FiscalCodeIsCorrect(FiscalCode) )
{
//something
}