主题:VC2005如何生成C++语言的单元测试
overfly
[专家分:3230] 发布于 2010-04-15 15:13:00
RT
回复列表 (共1个回复)
沙发
overfly [专家分:3230] 发布于 2010-04-15 16:58:00
终于搞清楚了:)
打开VC2005,文件--新建--项目,选择Visual C++ -- 测试 -- 测试项目,输入名称,点击确定
在项目中添加类和方法
class.h
-------------------------------
#pragma once
class A
{
public:
int fun(int a, int b);
};
class.cpp
--------------------------------
#include "stdafx.h"
#include "class.h"
//取a和b较大的值
int A::fun(int a, int b)
{
if (a > b)
{
return a;
}
else if (b > a)
{
return b;
}
else
{
return 0;
}
}
在UnitTest1.cpp中包含类的头文件#include "class.h",然后在void TestMethod1()里面添加测试代码
A a;
Assert::AreEqual(6, a.fun(5,6), "fun函数测试错误");
编译,这时会提示错误
error C4959: 不能在 /clr:safe 中定义非托管 class“A”,因为访问其成员会产生不可验证的代码
在项目--属性--配置属性--常规--公共语言运行库支持这里改成“公共语言运行库支持(/clr)”
编译通过,运行。界面会出现一个“选择结果”的提示,这里选择通过ManualTest1就会通过,选择失败ManualTest1就会失败,这个对单元测试没有影响,相当于MS给的一个例子吧
Assert::AreEqual(a,b,c)的功能是判断a和b是否相等,如果相等测试就通过,如果不相等测试就失败,并输出提示消息c
想进行多个测试的话可以在后面添加
[TestMethod]
void TestMethod2()
{
Assert::AreEqual(5, a.fun(5,5), "fun函数测试错误");
}
我来回复