假设我有以下类结构:
我希望对
因此,我考虑改变我的结构为:
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
以检查不同的输出。
但是,我的第一个结构更干净,因为我没有将变量值不必要地作为参数传递给方法。
有没有一种方法既能兼顾两者,又不必妨碍我的结构就能运行单元测试呢?