Junit4单元测试的基本用法

junit的测试方法必须使用@Test注解 测试方法必须以public void修饰,并且不包含参数 

assertEquals这个方法是一个断言方法

  1. 第一个参数表示预期的结果
  2. 第二个参数表示程序的执行结果

当预期结果与执行结果是一致的时候,则表示单元测试成功 

Junit4单元测试的基本用法_第1张图片

JUnit的一些注意事项:

测试方法必须使用@Test修饰
测试方法必须使用public void进行修饰,不能带参数
一般使用单元测试会新建一个test目录存放测试代码,在生产部署的时候只需要将test目录下代码删除即可
测试代码的包应该和被测试代码包结构保持一致
测试单元中的每个方法必须可以独立测试,方法间不能有任何依赖
测试类一般使用Test作为类名的后缀
测试方法使一般用test作为方法名的前缀

测试失败说明:

  • Failure:一般是由于测试结果和预期结果不一致引发的,表示测试的这个点发现了问题
  • error:是由代码异常引起的,它可以产生于测试代码本身的错误,也可以是被测试代码中隐藏的bug
一些常用注解:

@Test:将一个普通方法修饰成一个测试方法
@Test(excepted=xx.class): xx.class表示异常类,表示测试的方法抛出此异常时,认为是正常的测试通过的
@Test(timeout=毫秒数) :测试方法执行时间是否符合预期
@BeforeClass: 会在所有的方法执行前被执行,static方法
@AfterClass:会在所有的方法执行之后进行执行,static方法
@Before:会在每一个测试方法被运行前执行一次
@After:会在每一个测试方法运行后被执行一次
@Ignore:所修饰的测试方法会被测试运行器忽略
@RunWith:可以更改测试运行器org.junit.runner.Runner
Parameters:参数化注解

一个典型的单元测试包括三个步骤:

  1. 准备测试类及数据
  2. 执行要测试的行为
  3. 检查结果

 

 

@Before:初始化方法,在任何一个测试方法执行之前,必须执行的代码。对比 JUnit 3 ,和 setUp()方法具有相同的功能。在该注解的方法中,可以进行一些准备工作,比如初始化对象,打开网络连接等。

@After:释放资源,在任何一个测试方法执行之后,需要进行的收尾工作。对比 JUnit 3 ,和 tearDown()方法具有相同的功能。

@Test:测试方法,表明这是一个测试方法。在 JUnit 中将会自动被执行。对与方法的声明也有如下要求:名字可以随便取,没有任何限制,但是返回值必须为 void ,而且不能有任何参数。

@BeforeClass:针对所有测试,也就是整个测试类中,在所有测试方法执行前,都会先执行由它注解的方法,而且只执行一次。当然,需要注意的是,修饰符必须是 public static void xxxx ;此 Annotation 是 JUnit 4 新增的功能。

@AfterClass:针对所有测试,也就是整个测试类中,在所有测试方法都执行完之后,才会执行由它注解的方法,而且只执行一次。当然,需要注意的是,修饰符也必须是 public static void xxxx ;此 Annotation 也是 JUnit 4 新增的功能,与 @BeforeClass 是一对。

 



所以,在 JUnit 4 中,单元测试用例的执行顺序为:

@BeforeClass——》@Before——》@Test——》@After——》@AfterClass

所有标识为@AfterClass的方法都一定会被执行,即使在标识为@BeforeClass的方法抛出异常的的情况下也一样会。    所有标识为@After 的方法都一定会被执行,即使在标识为 @Before 或者 @Test 的方法抛出异常的的情况下也一样会。

@BeforeClass 和 @AfterClass 对于那些比较“昂贵”的资源的分配或者释放来说是很有效的,因为他们只会在类中被执行一次。相比之下对于那些需要在每次运行之前都要初始化或者在运行之后 都需要被清理的资源来说使用@Before和@After同样是一个比较明智的选择。

 

你可能感兴趣的:(Junit4单元测试的基本用法)