Medical Imaging Interaction Toolkit  2023.12.99-7a59bd54
Medical Imaging Interaction Toolkit
mitk::TestFixture Class Reference

Test fixture for parameterized tests. More...

#include <mitkTestFixture.h>

Inheritance diagram for mitk::TestFixture:
Collaboration diagram for mitk::TestFixture:

Protected Member Functions

std::vector< std::string > GetTestParameter () const
 Get parameters for this test fixture. More...
 

Static Protected Member Functions

static std::string GetTestDataFilePath (const std::string &testData)
 Get the absolute path for test data. More...
 

Detailed Description

Test fixture for parameterized tests.

This class is a drop-in replacement for CppUnit::TextFixture and enables test methods to access individual parameters. You can also invoke one method multiple times with different parameters.

The following simple example creates a single test without custom parameters:

class MySimpleTestSuite : public mitk::TestFixture
{
CPPUNIT_TEST_SUITE(MySimpleTestSuite);
MITK_TEST(FivePlusFiveTest);
CPPUNIT_TEST_SUITE_END();
public:
void FivePlusFiveTest()
{
CPPUNIT_ASSERT(5+5 == 10);
}
};
MITK_TEST_SUITE_REGISTRATION(MySimpleTestSuite)

The following example creates a test class containing only one test method, but the associated test suite contains three tests, using different parameters for each call of the same method. Use the macro MITK_PARAMETERIZED_TEST_1 only if you know what you are doing. If you are not sure, use MITK_TEST instead.

class MyTestSuite : public mitk::TestFixture
{
CPPUNIT_TEST_SUITE(MyTestSuite);
MITK_PARAMETERIZED_TEST_1(TestSomething, "One");
MITK_PARAMETERIZED_TEST_1(TestSomething, "Two");
MITK_PARAMETERIZED_TEST_1(TestSomething, "Three");
CPPUNIT_TEST_SUITE_END();
public:
void TestSomething()
{
std::vector<std::string> parameter = GetTestParameter();
CPPUNIT_ASSERT(parameter.size() == 1);
std::string testParam = parameter[0];
MITK_INFO << "Parameter: " << testParam;
}
};
See also
MITK_PARAMETERIZED_TEST
MITK_PARAMETERIZED_TEST_1

Definition at line 86 of file mitkTestFixture.h.

Member Function Documentation

◆ GetTestDataFilePath()

static std::string mitk::TestFixture::GetTestDataFilePath ( const std::string &  testData)
inlinestaticprotected

Get the absolute path for test data.

Parameters
testDataThe realative path in the MITK test data repository.
Returns
The absolute path for the test data.

Definition at line 107 of file mitkTestFixture.h.

References MITK_DATA_DIR.

Referenced by mitk::mitkModelTestFixture::ParseJSONFile().

◆ GetTestParameter()

std::vector<std::string> mitk::TestFixture::GetTestParameter ( ) const
inlineprotected

Get parameters for this test fixture.

This method can be called in tests added via the MITK_PARAMETERIZED_TEST macro or one of its variants.

Returns
The list of std::string parameters passed to previous calls of the MITK_PARAMETERIZED_TEST macro or one of its variants.

Definition at line 99 of file mitkTestFixture.h.


The documentation for this class was generated from the following file:
MITK_INFO
#define MITK_INFO
Definition: mitkLog.h:209
MITK_PARAMETERIZED_TEST_1
#define MITK_PARAMETERIZED_TEST_1(TESTMETHOD, arg1)
Adds a parameterized test to the current test suite.
Definition: mitkTestingMacros.h:359
mitk::TestFixture::GetTestParameter
std::vector< std::string > GetTestParameter() const
Get parameters for this test fixture.
Definition: mitkTestFixture.h:99
MITK_TEST
#define MITK_TEST(TESTMETHOD)
Adds a test to the current test suite.
Definition: mitkTestingMacros.h:295
mitk::TestFixture
Test fixture for parameterized tests.
Definition: mitkTestFixture.h:86
MITK_TEST_SUITE_REGISTRATION
#define MITK_TEST_SUITE_REGISTRATION(TESTSUITE_NAME)
Registers the given test suite.
Definition: mitkTestingMacros.h:267