文字列入力がnullまたは空かどうかをチェックするメソッドへの一連の呼び出しを含むメソッドがあります。空の場合、2番目のパラメーターをfalseに設定します。
public bool inputsContainData()
{
bool validInputs = True;
_helper.StringContainsData(_view.FilePath1, validInputs);
_helper.StringContainsData(_view.FilePath2, validInputs);
//...
Return validInputs;
}
StringContainsData()メソッドは、プレゼンターにDIされるクラスにあります。結果変数は参照型であるため、メソッドは何も返しません。
public void StringContainsData(string input, bool result)
{
if( string.IsNullOrEmpty(input))
{
result = false;
}
}
StringContainsData()をモックして特定の結果を返すことができないため、これにいくつかの問題があります。私が考えることができる唯一の解決策は、次のように2番目のIfステートメントを含めるかどうかです。
public bool StringContainsData(string input, bool result)
{
if( string.IsNullOrEmpty(input))
{
if(result != false)
{
return false;
}
}
else
{
if(result == false)
{
return false;
}
}
return true;
}
したがって、True、False、True=>最終結果=falseではなくtrueになるのを防ぎます。
これを行うためのより良い方法はありますか?