如果您只是想尽快的上手单元测试, 只看这个大标题下的内容就行了
这个是源代码, 使用的版本是vs 2015,
[Notice:]
需要一提的一个难点就是你可能遇到, 一个问题就是:
Linker Tools Error LNK2011: precompiled object not linked in; image may not run
这个问题是因为你没有Addstdafx.obj
文件。
建立你自己的需要测试的函数, 我们这里用一个简单的cpp控制台程序
- 创建待测试项目:
CppTest2
- 在解决方案下, 创建一个UnitTestProject。
- 绑定单元测试项目和待测试项目(CppTest2), 核心就是添加待测试项目CppTest2的obj文件。
添加附加库路径, 找到你CppTest2文件的obj文件的
Add Additional Library Directories
添加附加库文件, 这里需要注意的是, 你需要添加两个文件, 不仅仅是CppTest2.obj, 还有stdafx.obj, 不然就会出现LNK2011这个链接错误。
06~30_15-33-16.bmp
- 简介UnitTest里面文件的内容。
主要包括两个方面的东西
- TEST_CLASS 2. TEST_METHOD
#include "stdafx.h"
#include "CppUnitTest.h"
#include "..\CppTest2\CppTest2.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest
{
TEST_CLASS(CppTest2UT)
{
public:
CppTest2UT()
{
m_pCppTest = new CppTest2();
}
~CppTest2UT()
{
delete m_pCppTest;
}
TEST_METHOD(AddTest)
{
// TODO: Your test code here
Assert::AreEqual(2, m_pCppTest->Add(1, 1), 0);
}
CppTest2 * m_pCppTest;
};
}
-
最后就是在TEST_EXPLORER里面: 点击运行RunAll就好了
06~30_15-31-26.bmp
分析问题
从哪里开始:
我们不讲什么复杂的理论, 只是举一个简单的例子:
比如现在我们写了一个Add
函数, 在文件calculator.cpp中, 属于类calculator
int calculator::Add(int a, int b)
{
return a + b;
}
我们想对这个函数进行测试, 首先我们要能够从外部(另一个文件中)引用这个函数, 然后传递一些参数进去, 最后验证结果是不是我们要的。
好了, 我们引出了下一个大的问题, 引用需要测试的函数。
引用测试函数
这个问题包括了两个主要的方向
在哪里引用测试函数, 和怎么引用测试函数。
- 在哪里引用测试函数:
这里我们需要在一个测试的框架中引用这个东西