如何在VS2013中进行Boost单元测试
作者:网络转载 发布时间:[ 2014/10/20 15:08:42 ] 推荐标签:单元测试 软件测试 VS2013
如果我们将“BoostUnitTest.cpp”中的第13行改成:
BOOST_CHECK(tmpTested->add(2, 2) == 3);
单元测试运行结果是不通过,如下图:
至此,如何进行一个简单的Boost单元测试的过程完成了。
// 添加于2014.10.18 ---------------------------------------------------------------------------
现在,我在之前程序的基础上又添加了一点异常测试,相关的源代码如下:
1 #include <iostream>
2
3 using namespace std;
4
5 class Tested
6 {
7 public:
8
9 Tested();
10 virtual ~Tested();
11 int add(const int a, const int b);
12 void testException();
13
14 private:
15
16 };
1 #include "tested.h"
2
3 Tested::Tested()
4 {
5
6 }
7
8 Tested::~Tested()
9 {
10
11 }
12
13 int Tested::add(const int a, const int b)
14 {
15 return a + b;
16 }
17
18 void Tested::testException()
19 {
20 throw logic_error("my throw"); // 抛出一个逻辑错误异常
21 }
1 #define BOOST_TEST_MODULE Tested_Module // 主测试套件,一个测试项目中只能有一个主测试套件
2
3 #include "stdafx.h"
4 #include "D:VSProjectBoostUnitTestBoostUnitTestTested ested.h" // 待测工程头文件
5
6 struct Tested_Fixture // 测试夹具
7 {
8 Tested_Fixture()
9 {
10 BOOST_TEST_MESSAGE("setup fixture");
11 tmpTested = new Tested();
12 }
13 ~Tested_Fixture()
14 {
15 BOOST_TEST_MESSAGE("teardown fixture");
16 delete tmpTested;
17 }
18 Tested * tmpTested;
19 };
20
21 BOOST_FIXTURE_TEST_SUITE(Tested_test, Tested_Fixture) // 测试套件
22
23 BOOST_AUTO_TEST_CASE(Tested_Method_add_Test) // 测试用例
24 {
25 // TODO: Your test code here
26 BOOST_WARN(tmpTested->add(2, 2) == 4); // WARN型预言检测
27 BOOST_CHECK(tmpTested->add(2, 2) == 4); // CHECK型预言检测
28 BOOST_REQUIRE(tmpTested->add(2, 2) == 4); // REQUIRE型预言检测
29
30 }
31
32 BOOST_AUTO_TEST_CASE(Tested_Method_testException_Test) // 测试用例
33 {
34 // TODO: Your test code here
35 BOOST_REQUIRE_NO_THROW(tmpTested->testException()); // 验证是否无异常抛出,是则为真
36 BOOST_REQUIRE_THROW(tmpTested->testException(), logic_error); // 验证抛出的是否是logic_error异常
37 BOOST_REQUIRE_THROW(tmpTested->testException(), runtime_error); // 验证抛出的是否是runtime_error异常
38
39 }
40
41 BOOST_AUTO_TEST_SUITE_END()
很显示,程序的运行结果如下:
35 BOOST_REQUIRE_NO_THROW(tmpTested->testException()); // 测试不通过
36 BOOST_REQUIRE_THROW(tmpTested->testException(), logic_error); // 测试通过
37 BOOST_REQUIRE_THROW(tmpTested->testException(), runtime_error); // 测试不通过
如果要进行更复杂的测试,可以参考官方文档。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11