Я использую cppunit для тестирования моего кода на C ++. Я написал свой тестовый прибор, как это
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);
}
Возможно ли в приведенном выше коде передать параметры функциям сложения и умножения?
Где, как я сделал набор для запуска этого прибора, как показано ниже
#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;
}
Нет, ты не можешь. Addition () — это обратный вызов, который будет зарегистрирован в ядре CPPUNIT и вызван драйвером — поэтому он должен использовать интерфейс void (void). Вместо этого вы можете определить свои параметры как члены MainTestFixture.
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 init_fixture();
void Addition(void);
void Multiply(void);
protected:
//data members
param1_t m_param1;
param2_t m_param2;
};
void MainTestFixture::init_fixture()
{
m_param1 = ...;
m_param2 = ...;
}
void MainTestFixture::Addition()
{
param1_t res= m_param1 + ...;
// CPPUNIT_ASSERT(condition);
}