Я изучаю TDD, и у меня есть вопрос о частных / защищенных переменных. У меня вопрос: Если функция, которую я хочу проверить, работает с закрытой переменной, как мне ее проверить?
Вот пример, с которым я работаю:
У меня есть класс с именем Table
, который содержит переменную экземпляра с именем 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
?