Я использую cppunit для тестирования моего кода на C++. Я написал мой тестовый прибор, как этотМожем ли мы передать параметры для функций тестовых случаев в C++ с помощью CppUnit?
class MainTestFixture : public TestFixture
{
CPPUNIT_TEST_SUITE(MainTestFixture);
CPPUNIT_TEST(Addition);
CPPUNIT_TEST(Multiply);
CPPUNIT_TEST_SUITE_END();
public:
void setUp(void);
void tearDown(void);
protected:
// Test Functions
void Addition(void);
void Multiply(void);
};
Теперь, если я реализую тестовые случаи, как
void MainTestFixture::Addition()
{
// CPPUNIT_ASSERT(condition);
}
void MainTestFixture::Multiply()
{
// CPPUNIT_ASSERT(condition);
}
В приведенном выше коде, это возможно, что я передать параметры функции сложения и Multiply?
Где, как я сделал набор для запуска этой арматуре, как показано ниже
#include "MainTestFixture.h"
CPPUNIT_TEST_SUITE_REGISTRATION(MainTestFixture);
using namespace CPPUNIT_NS;
int main()
{
// informs test-listener about testresults
CPPUNIT_NS::TestResult testresult;
// register listener for collecting the test-results
CPPUNIT_NS::TestResultCollector collectedresults;
testresult.addListener (&collectedresults);
// register listener for per-test progress output
CPPUNIT_NS::BriefTestProgressListener progress;
testresult.addListener (&progress);
// insert test-suite at test-runner by registry
CPPUNIT_NS::TestRunner testrunner;
testrunner.addTest (CPPUNIT_NS::TestFactoryRegistry::getRegistry().makeTest());
testrunner.run(testresult);
// output results in compiler-format
CPPUNIT_NS::CompilerOutputter compileroutputter(&collectedresults, std::cerr);
compileroutputter.write();
// Output XML for Jenkins CPPunit plugin
ofstream xmlFileOut("cppMainUnitTest.xml");
XmlOutputter xmlOut(&collectedresults, xmlFileOut);
xmlOut.write();
// return 0 if tests were successful
return collectedresults.wasSuccessful() ? 0 : 1;
}
Если вы хотите тестирования с параметрами Google C++ Testing Framework (https://code.google.com/p/googletest/wiki/AdvancedGuide#Type-Parameterized_Tests) предлагает такую возможность, если вы готовы отдать его попробуйте. – rbaleksandar
Но мой проект также работает на Linux, cppunit хорошо работает. Работает ли Google C++ в Linux? –
gtest является многоплатформенным и отлично работает на Linux (я использовал его много раз). Его также не нужно устанавливать (на самом деле официальная рекомендация НЕ устанавливается), и вы можете просто использовать его, добавив файлы gtest в структуру вашего проекта. – rbaleksandar