gpt4 book ai didi

c++ - 我可以将 BOOST_TEST_CASE 用于非静态类成员函数吗?

转载 作者:行者123 更新时间:2023-11-30 02:49:26 24 4
gpt4 key购买 nike

我现在正在使用 BOOST::UNIT_TEST 框架进行单元测试,它是进行单元测试的好工具。但是,我发现了一些不方便的地方:当我添加函数进行测试时,函数似乎必须是静态函数或自由函数,如下代码所示:

test_suite* ts = BOOST_TEST_SUITE( "unit_test" );

ts->add(BOOST_TEST_CASE(&static_fun));

当它不是静态函数时,例如,

class Abc
{
public:
void myfun();

};

Abc obj;
ts->add(BOOST_TEST_CASE(&(obj.myfun)));

然后,我将遇到 C2064: term does not evaluate to a function taking 0 arguments 错误。知道我可以将非静态类成员函数添加到测试框架吗?谢谢

最佳答案

我认为您尝试定义一个测试夹具类?大多数情况下我使用 boost test 的方式是这样的:

struct MyTestFixture
{
int test_data;
void func()
{
// some common test code
}
};

BOOST_FIXTURE_TEST_SUITE(MyTest, MyTestFixture)

BOOST_AUTO_TEST_CASE(Test1)
{
test_data = 3;
func();
// ...
}

BOOST_AUTO_TEST_CASE(Test2)
{
// ...
}

BOOST_AUTO_TEST_SUITE_END()

关于c++ - 我可以将 BOOST_TEST_CASE 用于非静态类成员函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21183538/

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