好吧,现在不要生气,我知道关于这个话题有几个问题,但我仍然有一些疑问。
我认为我完全同意不测试私有函数,我觉得这很合理,但是我怎样才能测试设置私有变量的公共方法呢?
假设构造函数设置了一些私有变量,我想在调用构造函数后测试这些变量是否正确设置。这是一个有效的测试吗?我应该如何在不添加公共 getter 的情况下检查私有变量的值?
我添加了一个不真实的场景示例以尝试更清楚:
public class ClassToTest
{
private bool _isOn;
public void SwitchOn() { _isOn = true; }
public void SwitchOff(){ _isOn = false; }
public void update()
{
if (_isOn)
DoSomething();
}
private void DoSomething()
{
//this could also execute a function of an external dependency. But still the dependency could not have a public function to test if the behavior actually ran.
}
}
如果无法针对 _isOn 值进行测试,如何测试 SwitchOn 和 SwitchOff 是否正常工作?(这是一个示例,这意味着我不会编写公共 getter 并且函数不会返回值,因为它们不需要)