6

次のクラス構造があるとしましょう。

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このようにして、単体テストでパラメーター値を変更して、さまざまな出力を確認できるようになりました。

ただし、最初の構造は、不必要に変数値をパラメーターとしてメソッドに渡していないため、よりクリーンです。

単体テストを実行するために構造を妨げずに、両方の長所を活かす方法はありますか?

4

2 に答える 2