使用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进行单元测试,对以后的软件开发能力又有了进一步提高。

软件工程第二次作业(Junit和GoogleTest)的更多相关文章

  1. 集大1513 & 1514班 软件工程第二次作业评分与点评

    谢谢按时完成作业的同学. 请大家在今后的作业中多思考,认真完成并注意作业的原创性. 学号 作业标题 作业地址 提交日期 分数 201521121087 微信APP简要分析 http://www.cnb ...

  2. 软件工程第二次作业(JUnit的使用)

    初次使用JUnit 感谢学习资源Junit使用的超简单介绍源 一.开发环境及界面截图: 系统   Windows 10      编辑器       eclipse         语言        ...

  3. 软件工程第二次作业(Android Studio利用Junit进行单元测试)

    一.开发工具的安装和运行 1.安装 由于我的电脑之前就安装好了Android Studio,就不再重装了.在这里就给出几条安装过程中需要注意的地方吧: 安装包最好在官网下载已经带有Android SD ...

  4. 软件工程 - 第二十次作业 Alpha 事后诸葛亮(团队)

    Alpha 事后诸葛亮(团队) 组长本次作业链接:https://www.cnblogs.com/dawnduck/p/10056026.html 现代软件工程 项目Postmortem 设想和目标 ...

  5. 软件工程第二次作业——git的使用

    1. 参照 http://www.cnblogs.com/xinz/p/3803109.html 的第一题,每人建立一个GitHub账号,组长建立一个Project,将本组成员纳入此Porject中的 ...

  6. 17秋 软件工程 第二次作业 sudoku

    2017年秋季 软件工程 作业2:个人项目 sudoku Github Project Github Project at Wasdns/sudoku. PSP Table PSP2.1 Person ...

  7. 软件工程第二次作业(One who wants to wear the crown, Bears the crown.)

    小镓自述Eclipse使用及自动单元测试技术 因为本人对JAVA有一些兴趣,所以就决定用Eclipse来完成这次作业,从安装Eclipse到学习写代码,最后学会用Junit来进行单元测试.这段过程给我 ...

  8. 软件工程第二次作业——Java学习路线

    我的第二次软工作业 过去我对自己所学和想学都很迷茫,以至于学得总是一知半解,但现在我想主攻Java方向,并坚定不移地走下去(之后拓展其他方面就是以后的事情了).之所以想主攻Java方向是因为Java本 ...

  9. 【软件工程第二次作业】个人项目:WordCountPy

    一.GitHub 地址 项目 GitHub 地址为:https://github.com/bytemo/WordCountTool 二.PSP表格 PSP2.1 Personal Software P ...

随机推荐

  1. PHP array_diff_uassoc() 函数

    实例 比较两个数组的键名和键值(使用用户自定义函数比较键名),并返回差集: <?phpfunction myfunction($a,$b){if ($a===$b){return 0;}retu ...

  2. Promise核心基础

    基础 Promise 抽象表达:是js中进行异步编程的新的解决方案 具体解释:1.从语法上来说是一个构造函数 2.从功能上来说promise对象用来封装一个异步操作并可以获取其结果 状态改变:0.ne ...

  3. 【CF115E】Linear Kingdom Races 题解(线段树优化DP)

    前言:前辈讲课时设的状态还是有些繁琐,感觉题解设的状态更简洁. -------------- 题目链接 题目大意:给定$n$条道路和$m$场比赛,每个道路修建需要$c_i$,每场比赛需要使用$[l_i ...

  4. WEB应用中的路径问题及乱码问题

    1 WEB应用中的路径问题  在web应用中,由于使用转发跳转路径时,地址栏不变.此时使用相对路径(../)存在404现象. 故使用绝对路径,解决web应用的路径问题. 什么是绝对路径,以 “/” 开 ...

  5. Android Studio--家庭记账本(一)

    今天通过观看视频,根据老师所讲内容,编译代码.实现了Android Studio记账本里面的增加功能 源代码如下: CostBean.java: package com.example.family; ...

  6. NIO(三):Selector选择器

    一.堵塞式与非堵塞式 在传统IO中,将数据由当前线程从客户端传入服务端,由服务端的内核进行判断传过来的数据是否合法,内核中是否存在数据. 如果不存在数据 ,并且数据并不合法,当前线程将会堵塞等待.当前 ...

  7. Java环境变量,jdk和jre的区别,面向对象语言编程

    什么是java? java是一门面向对象的编程语言,包括java SE, java ME, Java EE . 广泛使用的是作为后端语言的Java EE开发, 面向对象和面向过程? java,C++ ...

  8. SQL性能优化-查询条件与字段分开执行,union代替in与or,存储过程代替union

    PS:概要.背景.结语都是日常“装X”,可以跳过直接看优化历程 环境:SQL Server 2008 R2.阿里云RDS:辅助工具:SQL 审计 概要 一个订单列表分页查询功能,单从SQL性能来讲,从 ...

  9. RF,SVM和NN的优缺点

    1. 随机森林优缺点 随机森林(RF)是Bagging的一个扩展变体.RF在以决策树为基分类器进行集成的基础上,进一步在决策树的训练过程中引入了随机属性选择. Bagging就是对数据集训练多个基分类 ...

  10. Java—接口

    接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义与实 ...