わかりました、今は怒らないでください。このトピックについていくつか質問があることは知っていますが、まだいくつか疑問があります。
プライベート関数をテストしないことに完全に同意すると思いますが、それは合理的だと思いますが、プライベート変数を設定するパブリックメソッドをテストするにはどうすればよいですか?
コンストラクターがいくつかのプライベート変数を設定し、コンストラクターが呼び出された後にそれらの変数が正しく設定されていることをテストしたいとしましょう。有効なテストですか?パブリックゲッターを追加せずにプライベート変数の値を確認するにはどうすればよいですか?
より明確にするために、実際ではないシナリオの例を追加します。
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 が適切に機能することをテストするにはどうすればよいですか? (これは一例です。パブリック ゲッターを記述せず、関数が値を返す必要がないため値を返さないことを意味します)