徐州網站制作如何定位互聯(lián)網+營銷策略怎么寫
Note:boost_1_84_0的動態(tài)連接庫資源鏈接
1.代碼組織如下圖:
2.包括程序入口的代碼文件 示例:
// M24.01.MyTestModule.cpp : 定義控制臺應用程序的入口點。
//#include "stdafx.h"
#define BOOST_TEST_MODULE MYTESTMODULE
#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_NO_MAIN
#include <boost/test/unit_test.hpp>//動態(tài)連接到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"<<std::endl;
// 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 comparisonBOOST_TEST(a < c);BOOST_TEST(a >= c);BOOST_TEST(a != c);
}
3.Test Suite 1 代碼文件:
#include "stdafx.h"
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>// 生產代碼
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 errorBOOST_TEST(add(2, 2) == 4); //1// throws on errorBOOST_TEST_REQUIRE(add(2, 2) == 4); //2//continues on errorif (add(2, 2) != 4)BOOST_ERROR("Ouch..."); // 3// throws on errorif (add(2, 2) != 4)BOOST_FAIL("Ouch..."); //4// throws on errorif (add(2, 2) != 4)throw "Ouch..."; //5// continues on error //6BOOST_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 <boost/test/unit_test.hpp>//生產代碼
class const_string {
public:// Constructorsconst_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 methodschar 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 編寫更多測試套件。
測試結果如下: