软件工程第二次作业(Junit和GoogleTest)
使用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版本。


编译完成后,进入msvc\gtest\Debug的文件下,找到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进行单元测试,对以后的软件开发能力又有了进一步提高。
软件工程第二次作业(Junit和GoogleTest)的更多相关文章
- 集大1513 & 1514班 软件工程第二次作业评分与点评
谢谢按时完成作业的同学. 请大家在今后的作业中多思考,认真完成并注意作业的原创性. 学号 作业标题 作业地址 提交日期 分数 201521121087 微信APP简要分析 http://www.cnb ...
- 软件工程第二次作业(JUnit的使用)
初次使用JUnit 感谢学习资源Junit使用的超简单介绍源 一.开发环境及界面截图: 系统 Windows 10 编辑器 eclipse 语言 ...
- 软件工程第二次作业(Android Studio利用Junit进行单元测试)
一.开发工具的安装和运行 1.安装 由于我的电脑之前就安装好了Android Studio,就不再重装了.在这里就给出几条安装过程中需要注意的地方吧: 安装包最好在官网下载已经带有Android SD ...
- 软件工程 - 第二十次作业 Alpha 事后诸葛亮(团队)
Alpha 事后诸葛亮(团队) 组长本次作业链接:https://www.cnblogs.com/dawnduck/p/10056026.html 现代软件工程 项目Postmortem 设想和目标 ...
- 软件工程第二次作业——git的使用
1. 参照 http://www.cnblogs.com/xinz/p/3803109.html 的第一题,每人建立一个GitHub账号,组长建立一个Project,将本组成员纳入此Porject中的 ...
- 17秋 软件工程 第二次作业 sudoku
2017年秋季 软件工程 作业2:个人项目 sudoku Github Project Github Project at Wasdns/sudoku. PSP Table PSP2.1 Person ...
- 软件工程第二次作业(One who wants to wear the crown, Bears the crown.)
小镓自述Eclipse使用及自动单元测试技术 因为本人对JAVA有一些兴趣,所以就决定用Eclipse来完成这次作业,从安装Eclipse到学习写代码,最后学会用Junit来进行单元测试.这段过程给我 ...
- 软件工程第二次作业——Java学习路线
我的第二次软工作业 过去我对自己所学和想学都很迷茫,以至于学得总是一知半解,但现在我想主攻Java方向,并坚定不移地走下去(之后拓展其他方面就是以后的事情了).之所以想主攻Java方向是因为Java本 ...
- 【软件工程第二次作业】个人项目:WordCountPy
一.GitHub 地址 项目 GitHub 地址为:https://github.com/bytemo/WordCountTool 二.PSP表格 PSP2.1 Personal Software P ...
随机推荐
- centOS7.*安装nginx和简单使用
安装nginx 去官网下载对应的nginx包,推荐使用稳定版本. 上传下载好的包到服务器 安装依赖环境 安装gcc环境. yum install gcc-c++ 安装PCRE库,用于解析正则表达式. ...
- PHP array_diff_assoc() 函数
实例 比较两个数组的键名和键值,并返回差集: <?php$a1=array("a"=>"red","b"=>"g ...
- Python File read() 方法
概述 read() 方法用于从文件读取指定的字节数,如果未给定或为负则读取所有.高佣联盟 www.cgewang.com 语法 read() 方法语法如下: fileObject.read(); 参数 ...
- PHP xml_set_object() 函数
定义和用法 xml_set_object() 函数允许在对象中使用 XML 解析器.高佣联盟 www.cgewang.com 如果成功,该函数则返回 TRUE.如果失败,则返回 FALSE. 语法 x ...
- 4.13 省选模拟赛 树 树形dp 卷积 NTT优化dp.
考试的时候 看到概率 看到期望我就怂 推了一波矩阵树推自闭了 发现 边权点权的什么也不是. 想到了树形dp 维护所有边的断开情况 然后发现数联通块的和再k次方过于困难. 这个时候 应该仔细观察一下 和 ...
- 【java提高】(19)---BigDecimal详解和精度问题
BigDecimal详解和精度问题 一.背景 在实际开发中,对于 不需要任何准确计算精度的属性可以直接使用float或double,但是如果需要精确计算结果,则必须使用BigDecimal,例如价格. ...
- Android布局——单复选框(今天上课的内容总结下)
怎么感觉最近补充的都是监听器的内容,今天学长提了一个新的监听器,看起来很牛批(因为很长) // 添加文本更改的监听器, TextWatcher是监听器的回调接口 text.addTextChanged ...
- Java基础—对象构造
1.重载 有些类有多个构造器.例如,可以如下构造一个空的StringBuilder对象: StringBuilder message = new StringBuilder(); 或者,可以指定一个初 ...
- 代码优化之return 减少括号嵌套
代码优化之return 减少括号嵌套 例如下面的公共方法 // 优化 substring方法 解决边界越界问题 空指针问题 优化前 public static String subString ...
- .Net 桌面程序(winform,wpf,跨平台avalonia)打安装包部署到windows 入门
.Net 桌面程序(winform,wpf,跨平台avalonia)部署到windows 入门 本文以为avalonia为例,用Setup Factory 将.Net桌面程序(winform,wpf, ...