Я занимаюсь разработкой на основе C++ тестов. У меня есть набор классов, которые делают то же самое, например.Тестирование на модуле C++ с использованием тестового класса шаблонов
тот же ввод дает тот же результат (или должен, вот что я пытаюсь проверить). Я использую Visual Studio 2012's
CppUnitTestFramework. Я хотел создать шаблонный тестовый класс, поэтому я пишу тесты один раз и могу использовать шаблон в классах по мере необходимости, но я не могу найти способ сделать это. Моя цель:
/* two classes that do the same thing */
class Class1
{
int method()
{
return 1;
}
};
class Class2
{
int method()
{
return 1;
}
};
/* one set of tests for all classes */
template< class T>
TEST_CLASS(BaseTestClass)
{
TEST_METHOD(testMethod)
{
T obj;
Assert::AreEqual(1, obj.method());
}
};
/* only have to write small amout to test new class */
class TestClass1 : BaseTestClass<Class1>
{
};
class TestClass2 : BaseTestClass<Class1>
{
};
Есть ли способ, которым я могу это сделать, используя CppUnitTestFramework?
Есть ли еще один модуль тестирования модулей, который позволил бы мне это сделать?
Приветствия за ответ. Для тех, кто смотрит на этот googletest, это немного боль, чтобы идти. Я использовал их в руководствах http://blog.knatten.org/2012/09/26/installing-and-using-googletest-with-visual-studio/ и http://stackoverflow.com/questions/531941/как в установке, Google-с-тестирование-каркасного GTEST-на-визуальному-студия-2005. Он не компилируется в Visual Studio 2012, если вы не зададите компилятору версию 2010 в свойствах проекта. –