使用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. centOS7.*安装nginx和简单使用

    安装nginx 去官网下载对应的nginx包,推荐使用稳定版本. 上传下载好的包到服务器 安装依赖环境 安装gcc环境. yum install gcc-c++ 安装PCRE库,用于解析正则表达式. ...

  2. PHP array_diff_assoc() 函数

    实例 比较两个数组的键名和键值,并返回差集: <?php$a1=array("a"=>"red","b"=>"g ...

  3. Python File read() 方法

    概述 read() 方法用于从文件读取指定的字节数,如果未给定或为负则读取所有.高佣联盟 www.cgewang.com 语法 read() 方法语法如下: fileObject.read(); 参数 ...

  4. PHP xml_set_object() 函数

    定义和用法 xml_set_object() 函数允许在对象中使用 XML 解析器.高佣联盟 www.cgewang.com 如果成功,该函数则返回 TRUE.如果失败,则返回 FALSE. 语法 x ...

  5. 4.13 省选模拟赛 树 树形dp 卷积 NTT优化dp.

    考试的时候 看到概率 看到期望我就怂 推了一波矩阵树推自闭了 发现 边权点权的什么也不是. 想到了树形dp 维护所有边的断开情况 然后发现数联通块的和再k次方过于困难. 这个时候 应该仔细观察一下 和 ...

  6. 【java提高】(19)---BigDecimal详解和精度问题

    BigDecimal详解和精度问题 一.背景 在实际开发中,对于 不需要任何准确计算精度的属性可以直接使用float或double,但是如果需要精确计算结果,则必须使用BigDecimal,例如价格. ...

  7. Android布局——单复选框(今天上课的内容总结下)

    怎么感觉最近补充的都是监听器的内容,今天学长提了一个新的监听器,看起来很牛批(因为很长) // 添加文本更改的监听器, TextWatcher是监听器的回调接口 text.addTextChanged ...

  8. Java基础—对象构造

    1.重载 有些类有多个构造器.例如,可以如下构造一个空的StringBuilder对象: StringBuilder message = new StringBuilder(); 或者,可以指定一个初 ...

  9. 代码优化之return 减少括号嵌套

    代码优化之return 减少括号嵌套   例如下面的公共方法 // 优化 substring方法   解决边界越界问题 空指针问题 优化前 public static String subString ...

  10. .Net 桌面程序(winform,wpf,跨平台avalonia)打安装包部署到windows 入门

    .Net 桌面程序(winform,wpf,跨平台avalonia)部署到windows 入门 本文以为avalonia为例,用Setup Factory 将.Net桌面程序(winform,wpf, ...