В моем основном проекте я активно используется Assertion заявление C++ следующим образом:Test Cases VS Assertion заявление
int doWonderfulThings(const int* fantasticData)
{
ASSERT(fantasticData);
if(!fantasticData)
return -1;
// ,,,
return WOW_VALUE;
}
Но TDD сообщество похоже, чтобы нравится делать что-то вроде этого:
int doMoreWonderfulThings(const int* fantasticData)
{
if(!fantasticData)
return ERROR_VALUE;
// ...
return AHA_VALUE;
}
TEST(TDD_Enjoy)
{
ASSERT_EQ(ERROR_VALUE, doMoreWonderfulThings(0L));
ASSERT_EQ(AHA_VALUE, doMoreWonderfulThings("Foo"));
}
Просто с моим опыт первых подходов позволяет мне удалить так много тонких ошибок. Но подходы TDD - очень умная идея для обработки устаревших кодов.
«Google» - они сравнивают «ПЕРВЫЙ МЕТОД» с «Прогулка по берегу живым жилетом, плавая океан без какой-либо безопасной охраны».
Какой из них лучше? Какой из них делает программное обеспечение надежным?