boost test 编译问题

1. boost test UTF, 如果在UI下,如对话框工程下进行单元测试, link 选项 需要添加

/SUBSYSTEM:CONSOLE

才能进行测试。

struct global_fixture1
{
    global_fixture1()  { cout << ("global setup\n") << endl; }
    ~global_fixture1() { cout << ("global teardown\n") << endl; }
};

struct suit_fixture
{
    suit_fixture()  { cout << ("----suit setup\n") << endl; }
    ~suit_fixture() { cout << ("----suit teardown\n") << endl; }
};
struct case_fixture
{
    case_fixture()  { cout << ("--------case setup\n") << endl; }
    ~case_fixture() { cout << ("--------case teardown\n") << endl; }
};

BOOST_GLOBAL_FIXTURE(global_fixture1);

// BOOST_AUTO_TEST_SUITE(s_t)
// BOOST_AUTO_TEST_CASE(s_t)

BOOST_FIXTURE_TEST_SUITE(s_t, suit_fixture)
    BOOST_FIXTURE_TEST_CASE(s_c, case_fixture)
{
    CC c;
    c.m_name = "lxg";
    ::MessageBox(NULL, "ok", c.m_name.c_str(), MB_OK);
    std::cout << c.m_name << std::endl;
    BOOST_CHECK_EQUAL(c.m_name, "lxg");
}
BOOST_AUTO_TEST_SUITE_END()

BOOST_FIXTURE_TEST_SUITE(s_t1, suit_fixture)
    BOOST_AUTO_TEST_CASE(s_c1)
{
    std::cout << "s_c1 test" << std::endl;
    BOOST_CHECK_EQUAL(1, 1);
}
BOOST_AUTO_TEST_SUITE_END()
2. 例子,对于console程序,用BOOST_TEST_NO_MAIN 决定用系统的 main, 如果定义 BOOST_TEST_MAIN 或者 BOOST_TEST_MODULE xxx, 则运行测试程序。

// #define BOOST_TEST_NO_MAIN  // 使用自带的 main 函数
// #define BOOST_TEST_MAIN 
#define BOOST_TEST_MODULE testme
#include <boost/test/included/unit_test.hpp>
using namespace boost;
struct global_fixture1
{
    global_fixture1()  { cout << ("global setup\n") << endl; }
    ~global_fixture1() { cout << ("global teardown\n") << endl; }
};


struct suit_fixture
{
    suit_fixture()  { cout << ("----suit setup\n") << endl; }
    ~suit_fixture() { cout << ("----suit teardown\n") << endl; }
};
struct case_fixture
{
    case_fixture()  { cout << ("--------case setup\n") << endl; }
    ~case_fixture() { cout << ("--------case teardown\n") << endl; }
};


BOOST_GLOBAL_FIXTURE(global_fixture1);


// BOOST_AUTO_TEST_SUITE(s_t)
// BOOST_AUTO_TEST_CASE(s_t)


BOOST_FIXTURE_TEST_SUITE(s_t, suit_fixture)
    BOOST_FIXTURE_TEST_CASE(s_c, case_fixture)// 如果都有夹具,只能使用case的夹具
{
    CC c;
    c.m_name = "lxg";
    std::cout << c.m_name << std::endl;
    BOOST_CHECK_EQUAL(c.m_name, "lxg");
}
BOOST_AUTO_TEST_SUITE_END()


BOOST_FIXTURE_TEST_SUITE(s_t1, suit_fixture)
    BOOST_AUTO_TEST_CASE(s_c1)
{
    std::cout << "s_c1 test" << std::endl;
    BOOST_CHECK_EQUAL(1, 1);
    CdtDlg dlg;
    dlg.DoModal();
}
BOOST_AUTO_TEST_SUITE_END()






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值