文档章节

jUnit - 入门介绍

KuangCaibao
 KuangCaibao
发布于 2015/07/15 17:43
字数 745
阅读 48
收藏 0

测试很重要,不解释。在此介绍jUnit测试工具的使用。

环境:

eclipse, Maven

第一步: 在Eclipse中创建一个空的Maven工程

这个空的Maven工程自带了一个版本的jUnit,这个在 pom.xml 文件中可以看到,我们可以改成最新的junit版本,或者不变。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>kuangcaibao</groupId>
  <artifactId>junitTest</artifactId>
  <version>0.0.1</version>
  <packaging>jar</packaging>

  <name>junitTest</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

第二步:编写测试示例

在Eclipse的Maven工程中,其默认创建了2个文件夹:main 和 test, 在main文件夹中存放我们实现的代码类,在test中实现我们的测试类。例如我们在main中创建一个 Calculator 类,那么对应的测试类名为 CalculatorTest 类,一一对应,这样使用Eclipse中的 junit test功能选项就可以运行测试类了,输出测试报告。(其实名称是不重要的。)下面贴出对应的代码。

// Calculator.java
package kuangcaibao.junitTest;
public class Calculator {

	public int evaluate(String expression) {
		int sum = 0;
		for(String summand : expression.split("\\+")) {
			sum += Integer.valueOf(summand);
		}
		
		return sum;
	}
// CalculatorTest.java
package kuangcaibao.junitTest;

import static org.junit.Assert.assertEquals;
import org.junit.Test;

public class CaculatorTest {

	@Test
	public void evaluatesExpression() {
		Calculator calculator = new Calculator();
		int sum = calculator.evaluate("1+2+3");
		assertEquals(6, sum);
	}
	
	@Test
	public void evaluatesExpression1() {
		Calculator calculator = new Calculator();
		int sum = calculator.evaluate("1+2+3");
		assertEquals(-6, sum);
	}
}

运行测试用例,输入测试结果。鼠标右击junitTest工程 -> Run As -> JUnit Test, 或者是  Run As -> Maven Test就会在 Eclipse的相应窗口上输入测试结果了。

jUnit相关语法:

jUnit是一个测试工具,我们需要使用jUnit测试工具,那么我们就应该遵循jUnit的测试语法。这些介绍在jUnit的官网上面都可以看到。先简单测试下jUnit的工作方式,看下下面2个测试类,CalculatorTest1.java, CalculatorTest2.java

// CalculatorTest1.java
package kuangcaibao.junitTest;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

public class CalculatorTest1 {

	@Test
	public void Test1() {
		Calculator calculator = new Calculator();
		int sum = calculator.evaluate("1+2+3");
		assertEquals(6, sum);
	}
}
// CalculatorTest2.java
package kuangcaibao.junitTest;

import static org.junit.Assert.assertEquals;

import org.junit.Test;

public class CalculatorTest2 {

	@Test
	public void Test2() {
		Calculator calculator = new Calculator();
		int sum = calculator.evaluate("1+2+3");
		assertEquals(-6, sum);
	}
}

运行jUnit Test,可以看到输出结果: Runs: 2/2   Errors:0  Failures: 1,第2个测试失败了,这也符合我们的测试预期。可以看到除了将测试文件放到 test 文件夹下,在eclipse中启动测试时,会自动在 test 文件夹下去找测试实例,和文件名没有关系,估计是注解  @Test 起了作用。现在应该知道jUint是个什么回事了。

在上面的例子中,我们仅仅用到了  @Test   和   assertEquals()  这2个最基本,也是最重要的元素。更多介绍在官网上有详细的描述。

Assertions 的各种用法:https://github.com/junit-team/junit/wiki/Assertions

测试用例执行顺序的说明: https://github.com/junit-team/junit/wiki/Aggregating-tests-in-suites

© 著作权归作者所有

KuangCaibao
粉丝 2
博文 21
码字总数 10699
作品 0
武汉
程序员
私信 提问
JUnit 4.9 Beta3 发布,Java单元测试框架

JUnit 似乎很久没发布新版本了,这是 JUnit 4.9 的第三个beta测试版,详细的改进内容请看这里。 这里有关于新版本中 Rules 的介绍:http://java.dzone.com/articles/rules-junit-49-beta-3 ...

红薯
2011/07/26
1K
2
测试动作类Action入门

测试动作类Action 16.2.1测试动作类Action入门 通过前面的学习已经了解到:Struts2的动作类Action,可以做到完全和web无关,不再依赖HttpServletRequest和HttpServletResponse等servlet的Api...

Artemjor
2013/12/27
444
0
JUnit框架功能详细——JUnit学习(一)

是著名的单元测试框架,在JUnit4中所有的测试用例采用@Annotation标注,这比JUnit3的通过类继承和特定方法名带来更大的灵活性。在花了一周多的时间学习JUnit4使用及原码后发现自己以往只用到...

gangzz
2013/07/13
21.6K
8
JUnit 4.12 发布,Java 单元测试框架

JUnit 4.12 发布,此版本支持命令行选项;改进了断言,异常测试,超时测试等等测试方法。更新内容请见发行说明。 此版本现已提供下载: junit-4.12-javadoc.jar junit-4.12-sources.jar juni...

唐伟
2014/12/08
10.9K
4
JUnit 5.2.0 发布,Java 单元测试框架

JUnit 5.2.0 发布,JUnit 5.2.0 = Platform 1.2.0 + Jupiter 5.2.0 + Vintage 5.2.0,此次更新包括构建工具的增强、参数化测试的改进等。 更新信息如下: 构建工具功能增强以支持新的模块化体...

h4cd
2018/05/04
1K
2

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud 笔记之Spring cloud config client

观察者模式它的数据的变化是被动的。 观察者模式在java中的实现: package com.hxq.springcloud.springcloudconfigclient;import org.springframework.context.ApplicationListener;i...

xiaoxiao_go
26分钟前
2
0
CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
今天
4
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
今天
7
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
今天
7
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部