gpt4 book ai didi

c++ - CppUnit 创建一个简单的测试

转载 作者:行者123 更新时间:2023-11-30 02:59:05 25 4
gpt4 key购买 nike

首先,如果我想设置一个测试,我使用什么类:

class MyClassTests 
setup()
teardown()
testDoingSomething()
testDoingA()

似乎要使用的类是 TestSuite?


所以现在我只创建了一个非常简单的类:

# ParserUnitTests.h
#include <cppunit\TestFixture.h>;
#include <cppunit\extensions\HelperMacros.h>

class ParserUnitTests : public CppUnit::TestFixture {

public:
void testCanDoUnitTest();
};

及其对应的cpp:

#include "ParserUnitTests.h"

CPPUNIT_TEST_SUITE(ParserUnitTests);

void ParserUnitTests::testCanDoUnitTest() {
CPPUNIT_ASSERT_EQUAL(1, 2, "Expected failure");
}

CPPUNIT_TEST(ParserUnitTests::testCanDoUnitTest);

我在 CPPUNIT_TEST_SUITE 行收到类似“expected a declaration”的错误...似乎与我来自的地方非常不同...更现代的语言.. . 像 JS/Python ... 好像这里更明确?我必须告诉 CppUnit 运行哪个类/测试用例?好的,但是是什么导致了错误?

CppUnit cookbook 中的代码主要是片段,很难弄清楚需要导入什么以及应该去哪里......也许有人可以指导我?

最佳答案

通过一些小的更改,您的代码应该可以正常工作。

// ParserUnitTests.h
#include <cppunit\TestFixture.h>;
#include <cppunit\extensions\HelperMacros.h>

class ParserUnitTests : public CppUnit::TestFixture {

CPPUNIT_TEST_SUITE(ParserUnitTest);
CPPUNIT_TEST(testCanDoUnitTest);
CPPUNIT_TEST_SUITE_END();

public:
void testCanDoUnitTest();
};

CPPUNIT_TEST_SUITE_REGISTRATION( ParserUnitTest );

// ParserUnitTests.cpp
#include "ParserUnitTests.h"

void ParserUnitTests::testCanDoUnitTest() {
CPPUNIT_ASSERT_EQUAL(1, 2, "Expected failure");
}

那么你只需要一个 main(我只是从 Cppunit cookbook 复制的)

// main.cpp
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/ui/text/TestRunner.h>

int main()
{
CppUnit::TextUi::TestRunner runner;
CppUnit::TestFactoryRegistry &registry = CppUnit::TestFactoryRegistry::getRegistry();
runner.addTest( registry.makeTest() );
bool wasSuccessful = runner.run();
return !wasSuccessful;
}

所以唯一的变化是你需要在头文件中的 TestFixture 声明中声明测试套件。

关于c++ - CppUnit 创建一个简单的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13210248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com