junit 笔记(一)

1. Test Suite

当我们写了多个测试类之后,可以将这些个类组织成一个test suite,执行这个test suite就会按照实现定义好的顺序执行所有的test class。

以下就是一个test suite的定义,其中用到注解@RunWith和@SuiteClasses。@SuiteClasses后面定义了test suite所包含的test class,在执行时也按照这个顺序依次执行这些test case。

package com.vogella.junit.first;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses({ MyClassTest.class, MySecondClassTest.class })
public class AllTests {

}

2.几个需要说明的注解

 1)

@Before
public void method()

在每个test之前都要执行的方法。一个@Test就是一个test。主要用来读入输入文件、实例化类等。

2)

@BeforeClass
public static void method()

这个方法只执行依次,而且实在所有test执行之前就要执行完毕。其对应的方法必须时static方法。@AfterClass也要求对应方法为static方法。

3)

@Ignore

如果不想执行某个case,或者执行完毕一个case需要花很长时间时,再不影响核心case执行的前提下,可以用该注解进行标识。

3.Junit static import

如果使用了静态引入后,当我们在调用一个类(eg: Assert)所提供的静态方法(assertEquals())时就不需要再加类名了。官方示例:

// without static imports you have to write the following statement
Assert.assertEquals("10 x 5 must be 50", 50, tester.multiply(10, 5));


// alteratively define assertEquals as static import
import static org.junit.Assert.assertEquals;
// more code
// use it without the prefix
assertEquals("10 x 5 must be 50", 50, tester.multiply(10, 5)); 

4.junit实例

创建一个类MyClass:

package com.vogella.junit.first;

public class MyClass {
  public int multiply(int x, int y) {
    // the following is just an example
    if (x > 999) {
      throw new IllegalArgumentException("X should be less than 1000");
    }
    return x * y;
  }
}
创建一个测试类,MyClassTest:

package com.vogella.junit.first;

import static org.junit.Assert.assertEquals;

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;

public class MyClassTest {
  
  @Test(expected = IllegalArgumentException.class)
  public void testExceptionIsThrown() {
    MyClass tester = new MyClass();
    tester.multiply(1000, 5);
  }

  @Test
  public void testMultiply() {
    MyClass tester = new MyClass();
    assertEquals("10 x 5 must be 50", 50, tester.multiply(10, 5));
  }
} 
ps:@Test (expected = Exception.class)如果对应方法执行中抛出的异常不是期待的异常时,该测试case执行失败。这个用来测试方法在某种情况下是否抛出正确期待类型的异常。
总结:本次笔记学习了Junit的一些入门知识,下次将继续学习Junit高级选项,包括参数化测试、Rules、Categories等。还有Mocking技术。

@Test, 返回值必须为void,而且不能有任何参数。

本文主要参考:http://www.vogella.com/tutorials/JUnit/article.html

JUnit学习笔记精要》是一本介绍JUnit测试框架的学习资料,可以从CSDN下载。JUnit是一个开源的Java单元测试框架,用于简化和自动化开发者编写和执行单元测试的过程。JUnit的学习对于提高代码质量、减少bug的产生以及提高开发效率具有重要意义。 这本《JUnit学习笔记精要》将帮助读者从零开始掌握JUnit的基本概念和用法。书中首先介绍了JUnit的起源和发展历程,让读者了解JUnit的背景和重要性。然后详细讲解了JUnit的安装和配置,帮助读者快速上手使用该测试框架。 接下来,书中深入介绍了JUnit的各种注解和断言方法。JUnit的注解用于标记测试方法,通过使用不同的注解,可以控制测试方法的执行顺序、重复执行次数等。而JUnit的断言方法则用于验证测试结果是否符合预期。书中通过大量的示例代码和实际案例,详细讲解了如何使用这些注解和断言方法。 此外,书中还介绍了如何构建复杂的测试套件、如何使用参数化测试和如何处理异常测试。这些高级主题能够帮助读者进一步提升自己的单元测试技能,实现更全面的测试覆盖和更准确的测试结果。 总之,《JUnit学习笔记精要》是一本系统、实用的学习资料,适合想要学习JUnit的开发者。通过下载这本书,读者可以更好地理解和掌握JUnit的各种概念和用法,提高软件开发的质量和效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值