Меня беспокоит использование "неправильно" инициализированных объектов в модульных тестах.Допустим, я хочу протестировать функцию:
void foo(SomeClass)
{
//do some stuff based on SomeClass.value
}
где:
class SomeClass
{
OtherClass* ptr;
int uninterestingValue;
int value;
};
Что я хочу сделать, это создать функцию (доступную только в модульном тесте, а именно в анонимном пространстве имен), которая:
SomeClass createDummy()
{
SomeClass dummy(nullptr, 0, //initialize uninteresting fields with nullptr/0
42) //42 will be used for testing purpose
}
Причина: Создание объекта типа SomeClass является сложным, так как он используется для представления конечного состояния обработки данных в системе.Я бы хотел немного упростить это.
Считается ли это плохим подходом?
Есть ли лучшие способы добиться этого (конкретно говоря о C ++ / googletest?