软件工程第二次作业(Junit和GoogleTest)

使用Eclipse的Junit框架进行单元测试

一、前言

我的电脑因为以前学过安卓开发,已经安装好了eclipse,看了邹欣老师的博客,博客上讲的的非常详细,所以在进行的过程中遇到困难,基本都能解决。

二、详细过程

1、新建项目

打开eclipse,点击左上角的file,然后new-->Project

选择Java Project

点击next,工程名字为TestUnit

右击工程TestUnitnew-->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++进行单元测试

一、前期准备

二、环境配置

解压安装包,找到msvc文件夹。

点击进入,找到gtest.sln,用VS2010打开。

依此编译gtest,和gtest_main两个项目的Debug和Relase版本。

编译完成后,进入msvc\gtest\Debug的文件下,找到gtestd.lib,gtestd_main.lib,复制到与msvc同目录下的lib文件夹中(没有的话,新建一个)。

在VS2010中新建一个控制台程序,并且添加fun.cppfun.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;
}

最后点击运行,结果如下:

总结

从本次的任务中,我学会了如何利用JunitGoogleTest进行单元测试,对以后的软件开发能力又有了进一步提高。

posted @ 2018-03-21 22:55  zhangyazhou  阅读(288)  评论(0编辑  收藏  举报