次のクラス構造があるとしましょう。
private string GlobalVariable = "foo";
public void MainMethod()
{
string bar = Baz();
}
public string Baz()
{
return GlobalVariable + "qux";
}
Baz()
に異なる値を使用して単体テストを実行したいと考えていますGlobalVariable
。ただしGlobalVariable
、メソッド内で単に呼び出され、パラメーターとして渡されないため、単体テスト メソッドでこれを設定することはできません。
したがって、構造を次のように変更することを検討しました。
private string GlobalVariable = "foo";
public void MainMethod()
{
string bar = Baz(GlobalVariable);
}
public string Baz(string globalVar)
{
return globalVar + "qux";
}
globalVar
このようにして、単体テストでパラメーター値を変更して、さまざまな出力を確認できるようになりました。
ただし、最初の構造は、不必要に変数値をパラメーターとしてメソッドに渡していないため、よりクリーンです。
単体テストを実行するために構造を妨げずに、両方の長所を活かす方法はありますか?