Здравствуйте, _hum_, Вы писали:
__>извините, но вы здесь описали вариант, когда либо готовый код правится, либо к готовому коду добавляется еще один готовый функциональный блок, и проверяется их совместимость. я нигде не увидел собственного написания.
Это и есть написание нового кода. Кода для парсинга определенных типов сообщений не было. Ты взял и написал его.
Править работающий год, добавляя новую функциональность, намного сложнее, чем писать с нуля. Поскольку помимо просто новой функциональности, разработчик обязан не сломать имеющуюся и правильно интегрировать новый код.
__>ну, простейший пример — вам сказал тим лид — нужно написать функцию, транспонирующую матрицу. как в этом случае будет выглядеть работа с тестами без дебагера?
Вот сходил ты в курилку и придумал, что назовешь свою функцию
Matrix transpose(const Matrix& original);
Налил кофе и написал следующие три теста
TEST(transposeMatrix, transposeNegative)
{
// this is more a border case test
ASSERT_TRUE(transpose(emptyMatrix).empty()); // Also checks that we don't crash if matrix is empty
}
TEST(transposeMatrix, transposePositiveSymmetrical)
{
Matrix symmetricalMatrix = ...; // Initialize
Matrix expected = ...; // Manually transposed matrix
ASSERT_EQ(expected, transpose(symmetricalMatrix));
ASSERT_EQ(symmetricalMatrix, transpose(transpose(symmetricalMatrix)));
}
TEST(transposeMatrix, transposePositiveAsymmetrical)
{
Matrix asymmetricalMatrix = ...; // Initialize
Matrix expected = ...; // Manually transposed matrix
ASSERT_EQ(expected, transpose(asymmetricalMatrix ));
ASSERT_EQ(asymmetricalMatrix , transpose(transpose(asymmetricalMatrix )));
}
Потом написал собственно код транспонирования.
Запустил тест. На все-про-все 5 минут времени и у тебя гораздо более полное покрытие, нежели ты может добиться ручными проверками в отладчике.
Ты мне лучше скажи, зачем тут вообще отладчик может понадобиться?