私はTDDを学んでいますが、プライベート変数/保護変数について質問があります。私の質問は、テストしたい関数がプライベート変数で動作している場合、どのようにテストすればよいですか?
これが私が取り組んでいる例です:
2D配列であるTable
というインスタンス変数を含むというクラスがあります。2D配列のすべての値に引数を掛けるinternalRepresentation
という関数を作成したいと思います。multiplyValuesByN
n
だから私はそれのテストを(Pythonで)書きます:
def test_multiplyValuesByN (self):
t = Table(3, 3) # 3x3 table, filled with 0's
t.set(0, 0, 4) # Set value at position (0,0) to 4
t.multiplyValuesByN(3)
assertEqual(t.internalRepresentation, [[12, 0, 0], [0, 0, 0], [0, 0, 0]])
さて、私がinternalRepresentation
プライベートまたは保護すると、このテストは機能しません。依存しないようにテストを作成するにはどうすればよいですか?internalRepresentation
それでも、呼び出した後に正しく見えるかどうかをテストしますmultiplyValuesByN
か?