Здравствуйте, landerhigh, Вы писали:
L>Здравствуйте, _hum_, Вы писали:
__>>ну вы же просто написали тесты, которые могут сказать, есть ли ошибка в написанном коде или нет (и то не всякая, ибо вы не все варианты можете покрыть). а как быть, если ошибка-таки обнаружилась — сработали ваши ассерты?
__>>как вы код править будете?
L>Эээ... путем нажатия на соответствующие клавиши на клавиатуре в редакторе кода, как же еще?
L>Я серьезно не понимаю, в чем вопрос.
а как найдете место, в который нужно поставить курсор, чтобы потом "нажать клавиши на клавиатуре в редакторе кода"?
L>>>Ты мне лучше скажи, зачем тут вообще отладчик может понадобиться?
__>>ну, например, в коде вы сделали описку — вместо resulted[i][j] = original[j][i] написали resulted[i][j] = original[i][j]Э, или у вас эксепш при вызове функции вылетает (вы неправильно рассчитали размерность транспонированной матрицы)
L>Соответствующий юнит-тест на это укажет:
L>L>TEST(transpose, matrixDimensions)
L>{
L> // это вообще можно сделать в цикле, чтобы проверить все возможные варианты.
L> // но обычно не надо, т.к. правильность алгоритма можно индукцией
L> Matrix transposed = transpose(getMatrix(1,10));
L> ASSERT_EQ(matrix::dimension(10,1), transposed);
L>}
L>
во-первых, в вашем первоначальнмо варианте этого теста не было, а во-вторых, он покажет, что транспонирования не поисходит, но
в каком месте кода ошибка — нет.
L>Если тест ломается, то это практически прямое указание, что именно и где нужно править.
если у вас тесты на каждые пару строк кода, то согласен (но это нереально).
__>>мне кажется, вы просто работаете на уровне, когда берете готовые блоки и начинаете их компоновать между собой. в этом случае, да, дебагер не очень нужен — обнаружили нестыковку — заменили блок и компоновку.
L>Когда кажется, нужно (и далее по тексту).
ладно, тогда так — я практически уверен, что вы только пользуетесь стандартными написанными кем-то штуками (ну, либо пишете код такой сложности, что его легко и без дебагера проверить)
кстати, а что с эксепшенами? вот вылетает у вас он в куске кода — как вы тестируете?