我有兩個名爲 「TT_Common」 和 「TT_Container」 延伸CPPUNIT_NS ::的TestFixture測試類來創建的TestFixture的實例TT_Runner延伸CPPUNIT_NS :: TestRunner的:CppUnit的:</p> <pre><code>class TT_Common : public CPPUNIT_NS::TestFixture ...... class TT_Container : public CPPUNIT_NS::TestFixture ...... </code></pre> <p>並號召anoter類:如何使用其名稱
class TT_Runner : public CPPUNIT_NS::TestRunner
{
.....
void run(CPPUNIT_NS::TestResult &controller, const std::string &testPath)
{
CPPUNIT_NS::TestPath path = m_suite->resolveTestPath(testPath);
CPPUNIT_NS::Test *testToRun = path.getChildTest();
for (size_t iIdx = 0; iIdx < testToRun->getChildTestCount(); iIdx++)
{
CPPUNIT_NS::Test* psTest = testToRun->getChildTestAt(iIdx);
std::string testName = psTest->getName();
// testName is TT_Common for iIdx = 0 and TT_Container for iIdx = 1
}
}
我已經有名的TestFixture,但如何建立一個Instace是?我找不到一個工廠或註冊表,其中取名並返回實例。
爲什麼要手動實例化燈具?夾具是測試的基類。他們自己可能不會做任何有用的事情。 –
我想使用它的名稱創建多個TT_Common和TT_Container類型的對象,以便在多個線程中的這些對象的上下文中啓動這些功能。 –
測試將在適當的燈具環境下自動運行(每次測試都在新實例中)。我仍然不明白爲什麼你應該手動進行。 –