可以说我有以下类结构:
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
单元测试中的参数值以检查不同的输出。
但是,我的第一个结构更简洁,因为我没有不必要地将变量值作为参数传递给方法。
有没有一种方法可以两全其美,而不必为了运行单元测试而阻碍我的结构?