软件工程第二次作业(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 ...
随机推荐
- vue脚手架创建项目名字报错
vue inti webpack TimeManger 报错 Sorry, name can no longer contain capital letters 原来这个capital是大写的意思,上 ...
- PHP date_timestamp_get() 函数
实例 返回今天的日期和时间的 Unix 时间戳: <?php$date=date_create();echo date_timestamp_get($date);?> 运行实例 » 定义和 ...
- PHP strripos() 函数
实例 查找 "php" 在字符串中最后一次出现的位置: <?php高佣联盟 www.cgewang.comecho strripos("I love php, I ...
- 5.20 省选模拟赛 求和 组合数的性质 EGF CRT
LINK:求和 绝妙的一道题目.没做绝对亏了. 对于第一个subtask 考虑直接递推出组合数. 对于第二个subtask 考虑EGF 设两个EGF 都只含偶数项指标且系数为1的那种 一个到n一个到m ...
- x86架构:保护模式下利用中断实现抢占式多任务运行
站在用户角度考虑,一个合格的操作系统即使在单核下也能 "同时" 执行多个任务,这就要求CPU以非常快的频率在不同任务之间切换,让普通人根本感觉不到任务的切换.windwo ...
- node.js 使用----相关常用命令总结
node.js 使用----相关常用命令总结 1. 下载并安装node.js 2. 设置全局模块存放的目录 2.1 查看默认配置 npm config ls 2.2 修改全局模块存放目录 npm co ...
- 使用Flask开发简单接口(2)--POST请求接口
今天我们继续学习如何使用Flask开发POST接口:用户注册接口和用户登录接口. request接收参数 当我们在页面发出一个POST请求,请求传到服务器时,需要如何拿到当前请求的数据呢?在Flask ...
- JS中escape()、encodeURI()、encodeURIComponent()区别详解
avaScript中有三个可以对字符串编码的函数,分别是: escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decode ...
- 未来云原生世界的“领头羊”:容器批量计算项目Volcano 1.0版本发布
在刚刚结束的CLOUD NATIVE+ OPEN SOURCE Virtual Summit China 2020上,由华为云云原生团队主导的容器批量计算项目Volcano正式发布1.0版本,标志着V ...
- 基于索引的QA问答对匹配流程梳理
知识库(主要是标准的QA信息)匹配需求是对已经梳理出的大量标准QA对信息进行匹配,找出最符合用户问题的QA对进行回复,拆分主要的处理流程主要为如下两点: 标准QA信息入库索引: 通过对用户提出的问题进 ...