Note:boost_1_84_0的动态连接库资源链接
// M24.01.MyTestModule.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#define BOOST_TEST_MODULE MYTESTMODULE
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_NO_MAIN
#include
//动态连接到UnitTestFrameWork
#pragma comment(lib,"boost_unit_test_framework-vc140-mt-gd-x64-1_84.lib")
// initialization function:
//bool init_unit_test()
//{
// std::cout << "using custom init"<
// return true;
//}
int main(int argc, char** argv)
{
//生产代码
//....
//测试代码
boost::unit_test::unit_test_main(&init_unit_test, argc, argv);
return 0;
}
BOOST_AUTO_TEST_CASE(myTestCase3)
{
std::vector<int> a{ 1,2,3 }, c{ 1,5,3,4 };
std::vector<long> b{ 1,5,3 };
// the following does not compile
//BOOST_TEST(a == b);
//BOOST_TEST(a <= b);
// stl defaults to lexicographical comparison
BOOST_TEST(a < c);
BOOST_TEST(a >= c);
BOOST_TEST(a != c);
}
3.Test Suite 1 代码文件:
#include "stdafx.h"
#define BOOST_TEST_DYN_LINK
#include
// 生产代码
int add(int i, int j) { return i + j; }
// 针对生产代码的测试代码
BOOST_AUTO_TEST_CASE(myTestCase1)
{
// six ways to detect and report the same error:
// continues on error
BOOST_TEST(add(2, 2) == 4); //1
// throws on error
BOOST_TEST_REQUIRE(add(2, 2) == 4); //2
//continues on error
if (add(2, 2) != 4)
BOOST_ERROR("Ouch..."); // 3
// throws on error
if (add(2, 2) != 4)
BOOST_FAIL("Ouch..."); //4
// throws on error
if (add(2, 2) != 4)
throw "Ouch..."; //5
// continues on error //6
BOOST_TEST(add(2, 2) == 4,
"2 plus 2 is not 4 but " << add(2, 2));
}
4.Test Suite 2 代码文件:
#include "stdafx.h"
#define BOOST_TEST_DYN_LINK
#include
//生产代码
class const_string {
public:
// Constructors
const_string() {};
const_string(std::string const& s) {};
const_string(char const* s) {};
const_string(char const* s, size_t length) {};
const_string(char const* begin, char const* end) {};
// Access methods
char const* data() const { return ""; };
size_t length() const { return 0; };
bool is_empty() const { return true; };
// ...
};
// 测试代码
BOOST_AUTO_TEST_CASE(myTestCase2)
{
const_string cs0(""); // 1 //
BOOST_TEST(cs0.length() == (size_t)0);
BOOST_TEST(cs0.is_empty());
const_string cs01(NULL); // 2 //
BOOST_TEST(cs01.length() == (size_t)0);
BOOST_TEST(cs01.is_empty());
const_string cs1("test_string"); // 3 //
BOOST_TEST(std::strcmp(cs1.data(), "test_string") == 0);
BOOST_TEST(cs1.length() == std::strlen("test_string"));
std::string s("test_string"); // 4 //
const_string cs2(s);
BOOST_TEST(std::strcmp(cs2.data(), "test_string") == 0);
const_string cs3(cs1); // 5 //
BOOST_TEST(std::strcmp(cs3.data(), "test_string") == 0);
const_string cs4("test_string", 4); // 6 //
BOOST_TEST(std::strncmp(cs4.data(), "test", cs4.length()) == 0);
const_string cs5(s.data(), s.data() + s.length()); // 7 //
BOOST_TEST(std::strncmp(cs5.data(), "test_string", cs5.length()) == 0);
const_string cs_array[] = { "str1", "str2" }; // 8 //
//BOOST_TEST(cs_array[0] == "str1");
//BOOST_TEST(cs_array[1] == "str2");
}
参考3、4 编写更多测试套件。