一、选择开发工具
我常用的语言为C与C++,所以选择Microsoft Visual Studio 2017(简称VS2017),因为VS2017是一个功能比较全面的编译软件,编程、调试、包装几乎一应俱全。以下是我已安装的VS2017的编译环境的应用界面。
二、练习自动单元测试技术
接下来进行单元测试练习。举一个简单例子,代码如下:
#include<stdio.h>
#include<stdlib.h>
int otto(int n)
{
int n,s=0,i=1;
scanf("%d",&n);
do
{
s=s+i*(i+1);
i=i+2;
}
while(i<(n+2));
return s;
}
这是一段12+34+...+n*(n+1)其中n为正奇数的求和代码。接下我将以它为例详细操作一下。
单元测试大致分为创建测试项目、添加引用、编写测试程序、运行测试这几个步骤。
1、创建测试项目
首先我们鼠标右键已有项目上方的解决方案,选择添加选项,点击新建项目一栏,结果如下图所示:
按照图中选择"Visual C++"-->"测试"-->"本机单元测试项目"即可完成创建测试项目。
2、添加引用
为了测试程序可以成功调用源程序数据库,需要在测试项目的引用中进行被测试项目的添加,建立依赖关系,如图所示:
按照图中点击"引用"-->"添加引用"-->"项目"选择被测项目。
3、编写测试程序
点击测试项目中源文件里的unittest1.cpp文件
编写测试程序,通过宏 TEST_METHOD包裹的方法都将成为单独的一个测试单元,如图所示:
测试中主要使用了Assert::AreEqual 来进行执行预期的判断操作,进行比较,若与预期判断不等,则会出现“测试错误”提示。
测试函数如下:
#include "stdafx.h"
#include "CppUnitTest.h"
#include "../lixiaop/test.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace UnitTest1
{
TEST_CLASS(UnitTest1)
{
public:
TEST_METHOD(TestMethod1)
{
Assert::AreEqual(otto(3), 14);// TODO: 在此输入测试代码
}
};
}
-
注意:对于被测项目你需要建立一个头文件用于存放被测试函数,在测试文件中需要应用这个头文件。
头文件内容如下:
#pragma once
int otto(int n)
{
int s = 0, i = 1;
do
{
s = s + i * (i + 1);
i = i + 2;
} while (i < (n + 2));
return s;
}
4、运行测试
(1)对于一般函数,点击测试一栏中的运行选项,点击所有测试即可。
测试结果如图所示:
-
总结
对于VS2017版的测试环境,用起来还是较为舒适的,本次的练习于我而言有很大的帮助,使我使用VS2017的测试单元更加的得心应手。