Я использую UnitTest ++ для модульного тестирования кода C ++.
В моих тестах есть группа тестов, которые я повторяю несколько раз. То, что я хотел бы для служебной функции, чтобы выполнить эти тесты. Короче, я бы хотел взять это:
TEST( foo ) {
Foo one;
Foo two;
// init one & two
// lots of CHECK_CLOSE(one.bar, two.bar, 1e-5); in repeating cycles
}
TEST( bar ) {
Foo one;
Foo two;
// init one & two
// lots of CHECK_CLOSE(one.bar, two.bar, 1e-5); in repeating cycles
}
И используйте это:
void blah( const Foo& one, const Foo& two ) {
// lots of CHECK_CLOSE(one.bar, two.bar, 1e-5);
}
TEST( foo ) {
Foo one;
Foo two;
// init one & two
blah(one, two);
}
TEST( bar ) {
Foo one;
Foo two;
// init one & two
blah(one, two);
}
Это не работает из-за макросов UnitTest ++. Как лучше всего подойти к этой проблеме?
edit : пара мыслей, которые я сейчас не могу проверить.
- Если я использую прибор с функцией полезности в
struct
, смогу ли я вызвать макросы UnitTest ++ из этой функции?
- Я могу написать макрос для выполнения общих тестов. Мне это не очень нравится, но, по крайней мере, я очень сухо ...