Проверьте два условия с должным - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть свойство в классе

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

И я хочу проверить фискальный код свойства с двумя условиями.Тест в порядке, если фискальный код равен нулю или фискальный код проверен методом

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

Как выполнить проверку в одной строке с обязательным, если проверено одно из двух условий?

IЯ хочу использовать это условие в тестовом проекте, чтобы строка кода могла быть

user.FiscalCode.ShouldBeOneOf()

Но я не могу, потому что null и string - это два разных типа.

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

что @Martin Zikmund sugessted тоже верно, но в вашем случае и Null, и FiscalCodeIsCorrect должны быть в порядке.Таким образом, размещение логики проверки null в FiscalCodeIsCorrect должно быть лучшим решением, тогда вам не нужно будет каждый раз проверять значение null.так вот что я имею в виду

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

теперь вам нужно только взломать

if (FiscalCodeIsCorrect(FiscalCode) )
{
   //something
}
0 голосов
/ 05 февраля 2019

ShouldBeOneOf не может иметь дело с функцией, поэтому я думаю, что простой способ заключается в использовании ShouldBeTrue

(FiscalCode == null || FiscalClodeIsCorrect(FiscalCode)).ShouldBeTrue();
0 голосов
/ 05 февраля 2019

Я думаю, вы можете просто использовать базовый ||:

if ( FiscalCode == null || FiscalCodeIsCorrect(FiscalCode) )
{
   //something
}

|| - логический оператор ИЛИ.Это оценивается как true в случае, если хотя бы один из операндов оценивается как true.Также обратите внимание, что он делает короткое замыкание, что означает, что если FiscalCode равно null, он вообще не будет вызывать FiscalCodeIsCorrect.

...