使用Eclipse的Junit框架进行单元测试
一、前言
我的电脑因为以前学过安卓开发,已经安装好了eclipse,看了邹欣老师的博客,博客上讲的的非常详细,所以在进行的过程中遇到困难,基本都能解决。
二、详细过程
1、新建项目
打开eclipse,点击左上角的file,然后new-->Project。
选择Java Project。
点击next,工程名字为TestUnit。
右击工程TestUnit,new-->class。
包名个人喜好,类名,我这里选择Claculator,点击finsh。
然后在Claculator.java中添加如下代码:
package zhangyazhou;
public class Calculator {
public int add(int x,int y){
return x + y;
}
public int substract(int x,int y){
return x - y;
}
public int multiply(int x,int y){
return x * y;
}
public int divide(int x,int y){
return x / y;
}
}
在eclipse中如下图:
2、进行单元测试
选中Claculator.class,点击右键,new-->Junit Test case.
点击finsh。
在ClaculatorTest.java里添加如下代码:
package zhangyazhou;
import static org.junit.Assert.*;
import org.junit.Test;
public class CalculatorTest {
@Test
public void testAdd() {
assertEquals(8,new Calculator().add(3,5));
assertEquals(5,new Calculator().add(3,2));
assertEquals(0,new Calculator().add(3,-3));
}
}
在eclipse中如下图:
现在进行测试,选中ClaculatorTest.java,右键,Run As-->Junit Test。
结果如下:
更改ClaculatorTest.java部分数值,结果如下:
3、自动测试
选中Claculator.java,右击,new-->other。
搜索Junit。
点击next,重命名为ClaculatorAutoTest,再点击next。
勾选需要测试的函数。
最后运行测试,因为没有改动ClaculatorAutoTest.java里的值,所以,测试失败。
使用GoogleTest框架对C++进行单元测试
一、前期准备
- GoogleTest开发包
- Visual Studio (推荐VS2010以上,我的是VS2010).
二、环境配置
解压安装包,找到msvc文件夹。
点击进入,找到gtest.sln,用VS2010打开。
依此编译gtest,和gtest_main两个项目的Debug和Relase版本。
编译完成后,进入msvcgtestDebug的文件下,找到gtestd.lib,gtestd_main.lib,复制到与msvc同目录下的lib文件夹中(没有的话,新建一个)。
在VS2010中新建一个控制台程序,并且添加fun.cpp和fun.h,如图所示。
选中工程文件,右击,进入属性。
进入C/C++-->常规-->附加包含目录。
复制GoogleTest里的include文件夹,复制到里面。
然后进入链接器-->输入,编辑附加依赖项。
现在环境配置好了。
三、进行单元测试
在fun.cpp中添加代码:
#include "fun.h"
#include <iostream>
#include "stdafx.h"
using namespace std;
int fun(int a,int b)
{
return (a - b);
}
在fun.h中添加代码:
#pragma once
int fun(int a,int b);
在Testunit.cpp添加代码:
#include "stdafx.h"
#include "gtest/gtest.h"
#include "fun.h"
#include <tchar.h>
TEST(fun,casel)
{
EXPECT_LT(-2,fun(1,2));
EXPECT_EQ(-1,fun(1,2));
ASSERT_LT(-2,fun(1,2));
ASSERT_EQ(-1,fun(1,2));
}
int _tmain(int argc, _TCHAR* argv[])
{
testing::InitGoogleTest(&argc,argv);
RUN_ALL_TESTS();
system("PAUSE");
return 0;
}
最后点击运行,结果如下:
总结
从本次的任务中,我学会了如何利用Junit和GoogleTest进行单元测试,对以后的软件开发能力又有了进一步提高。