Junit4的注解有如下8个:
1.@BeforeClass 测试类最开始执行的方法,并且只执行一次
2.@AfterClass 测试类最后执行的方法,并且只执行一次
3.@Before 每个测试方法都会在执行之前调用一次的方法
4.@After 每个测试方法都会在执行之后调用一次的方法
以上四个注解修饰的方法均需要抛出Exception异常
5.@Ignore 暂时不执行的测试,下面这个方法在测试类执行时不会被调用
6.@Test 普通测试
7.@Test(timeout=long) 超时测试
8.@Test(expected=Exception) 预期异常的测试,该注解修饰的方法抛出预期的异常则为正确的,反之则会报Errors
断言方法:junit4提供了多个方法名为assertEquals的重载方法,查api即可。
下面提供示例程序:
被测试的类为Main,测试类为MainTest
package com.jison;
/**
* 被测试的类
* @author jison
*
*/
public class Main {
/**
* 计算n的阶乘
* @param n
* @return
*/
public int factorial(int n){
int factorialNum = 1;
for (int i = 1; i < n+1; i++) {
factorialNum = factorialNum * i;
}
return factorialNum;
}
/**
* 计算n的阶乘
* @param n
* @param type 值为false时让程序报空指针
* @return
* @throws Exception
*/
public int factorial(int n, boolean type) throws NullPointerException{
if(!type){
throw new NullPointerException(){};
}
return factorial(n);
}
}
package junit4;
import static org.junit.Assert.assertEquals;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import com.jison.Main;
/**
* 测试类
* @author jison
*
*/
public class MainTest {
/**
* 测试类最开始执行的方法,并且只执行一次
* @throws Exception
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
System.out.println("setUpbeforeClass");
}
/**
* 测试类最后执行的方法,并且只执行一次
* @throws Exception
*/
@AfterClass
public static void tearDownAfterClass() throws Exception {
System.out.println("tearDownAfterClass");
}
/**
* 每个测试方法都会在执行之前调用一次的方法
*/
@Before
public void setUp() throws Exception {
System.out.println("setUp");
}
/**
* 每个测试方法都会在执行之后调用一次的方法
* @throws Exception
*/
@After
public void tearDown() throws Exception {
System.out.println("tearDown");
}
/**
* 普通测试
*/
@Test
public void testFactorial() {
// 断言方法
assertEquals(120, new Main().factorial(5));
}
/**
* 超时测试
* 会报Errors
*/
@Test(timeout=1)
public void testFactorial2(){
// 通过循环Long类型的最大值模拟超时的程序
for (int i = 0; i < Long.MAX_VALUE; i++) {}
assertEquals(3628800, new Main().factorial(10));
}
/**
* 测试到预期的异常
*/
@Test(expected=NullPointerException.class)
public void testFactorial3() throws NullPointerException{
// 参数true不报异常,false报异常
assertEquals(120, new Main().factorial(5, false));
}
/**
* 没有测试到预期的异常,报Failures
*/
@Test(expected=NullPointerException.class)
public void testFactorial31() throws NullPointerException{
// 参数true不报异常,false报异常
assertEquals(120, new Main().factorial(5, true));
}
/**
* 本应该通过测试到预期的异常,但是catch处理后则报Failures
*/
@Test(expected=NullPointerException.class)
public void testFactorial32(){
// 参数true不报异常,false报异常
try{
assertEquals(120, new Main().factorial(5, false));
} catch(NullPointerException e){
System.out.println("以下是预期的异常信息:");
e.printStackTrace();
}
}
/**
* 暂时不执行的测试
* 下面这个方法在测试类执行时不会被调用
*/
@Ignore
public void testFactorial4(){
System.out.println("Ignore");
}
}
分享到:
相关推荐
使用JUnit 对下列选择排序法进行测试。 public void select_sort (int a[]) { 1 int i, j, k, t, n; 2 n = a.length; 3 for (i = 0; i ; i++) { 4 k = i; 5 for (j = i + 1; j ; j++) { 6 if (a [j] [k...
本文内容包括:引言JUnit4初体验JUnit深入JUnit和Ant总结本文主要介绍了如何使用JUnit4提供的各种功能开展有效的单元测试,并通过一个实例演示了如何使用Ant执行自动化的单元测试。本文假设读者对Eclipse下进行Java...
junit使用总结的资料,很适合想了解与使用junit的学习者 version: junit 4与jdk 1.5或以上版本.
junit4 使用总结 @Test @Test(timeout=毫秒),@Test(expected=异常类) @Ignore @RunWith @BeforeCalss @AfterClass @Before @After 测试套件@RunWith(Suite.class) 参数化设置@RunWith(Parameterized.class)
开发项目单元测试必不可少,而jUnit也是java中非常优秀的测试框架,现在简单实战总结一下SpringBoot如何整合jUnit测试框架。 二、添加依赖 在SpringBoot中使用jUnit单元测试前,需要先添加如下maven依赖,其中 test ...
火龙果软件工程技术中心 本文内容包括:引言编写Mock类将测试数据保存到配置文件中编写SettersMap类编写可复用的TestCase类用TestSuite组织测试用例总结下载参考资料“规则”(Rule)在程序中有广泛的应用,本文将...
一直做开发,很少关注测试工具,尤其是以往的测试都主要是Junit测试,难免在web层面上因没有严格测试而经常出现bug,近来小小接触了一下这一类的测试工具,感觉蛮好玩的,在此和大家分享一下,希望多多交流
Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf
本文内容包括:概述Junit简介一个简单的JUnit程序实例JUnit源代码分析总结参考资料本文细致地描述了JUnit的代码实现,在展示代码流程UML图的基础上,详细分析JUnit的内部实现代码的功能与机制,并在涉及相关设计模式...
主要介绍了java编程之单元测试(Junit),结合实例形式较为详细的分析总结了Java单元测试的原理、步骤及相关注意事项,并附带了完整代码供读者下载参考,需要的朋友可以参考下
利用jmeter工具里的junit,java,http方式进行性能测试
13总结14资源列表参考资料本文将以一个真实的项目为背景,从分析过去存储过程的测试方法中存在的问题入手,逐步阐述我们分析问题,寻找问题根源和寻求解决办法的过程,介绍我们开发这个基于JUnit的存储过程自动化...
【被测的代码类】 【代码级别】 【Junit测试类1】 【意图描述】 【P/F】 【Junit测试类2】 功能测试分析 边界测试分析 覆盖率分析 目标类 级别 方法覆盖率 行覆盖率 备注 【被测的代码类】 【代码级别...
因此,我在这里对此内容做一下梳理和总结:在Java下做单元测试必然用到JUnit。这里说的JUnit是指从Apache基金会下载的junit.jar里提供的一系列单元测试功能。这些功能显然是运行在JDK之上的。在Andr
java程序员面试宝典、java程序员的基本修养、大话设计模式只看了重要的 )、测试相关(软件测试的艺术、从菜鸟到测试架构师、软件测试技术大全、selenium,qtp,junit的一些相关资料和书)、linux看了一点(鸟哥的...