一. 选择开发工具
此次测试选用Microsoft Visual Studio 2017当做开发工具,下面是安装后的截图。
二. 练习自动单元测试技术
1.打开VS2017新建一个项目,分别建立test.h和solution.cpp文件。
编写solution.cpp源程序,这里我编写的是求斐波那契数列前n项和的函数,如下所示:
#include <iostream>
#include "test.h"
using namespace std;
int Solution::fib(int num)
{
if (num <= 2) return 1;
return fib(num - 1) + fib(num - 2);
}
int main()
{
return 0;
}
头文件test.h代码如下:
class Solution {
public:
int fib(int num);
};
2.确定代码无误后,右键点击“解决方案”->"添加"->“新建项目”,如下图所示:
选择“本机单元测试项目”,如下图:
在左侧的状态栏出现了单元测试的项目“UnitTest1”,添加引用,如下图所示:
右键属性选择“链接器”->“输入”->“选择依赖项”,填写路径如下:
3.在unittest.cpp中编写单元测试用例代码,如下所示:
#include "stdafx.h"
#include "CppUnitTest.h"
#include "../单元测试/test.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1) {
public:
TEST_METHOD(Test1) {
Solution t;
Assert::AreEqual(1,t.fib(1));
}
TEST_METHOD(Test2) {
Solution t;
Assert::AreEqual(13, t.fib(7));
}
};
}
最后运行测试例子:
测试结果如下图所示,可以发现通过了测试用例。
三.总结
通过本次单元测试,让我认识到了测试的重要性。单元测试是可以有效地测试某个程序模块的行为,是对于之后的重构代码的重要保证。