JUnit 4 开始使用 Java 5 中的注解(annotation),常用的几个 annotation 介绍:

@BeforeClass:针对所有测试,只执行一次,且必须为static void

@Before:初始化方法

@Test:测试方法,在这里可以测试期望异常和超时时间

@After:释放资源

@AfterClass:针对所有测试,只执行一次,且必须为static void

@Ignore:忽略的测试方法

一个单元测试用例执行顺序为:

@BeforeClass –> @Before –> @Test –> @After –> @AfterClass

每一个测试方法的调用顺序为:

@Before –> @Test –> @After

以下是测试执行顺序代码:

  1. public class CalculatorTest {
  2. private static Calculator calculator = new Calculator();
  3. @BeforeClass
  4. public static void beforeClass1(){
  5. System.out.println("@beforeClass1");
  6. }
  7. @BeforeClass
  8. public static void beforeClass2(){
  9. System.out.println("@beforeClass2");
  10. }
  11. @Before
  12. public void before1() throws Exception {
  13. System.out.println("@before1");
  14. }
  15. @Before
  16. public void before2() throws Exception {
  17. System.out.println("@before2");
  18. }
  19. @Test
  20. public void testAdd() {
  21. System.out.println(1);
  22. }
  23. @Test
  24. public void testSubstract() {
  25. System.out.println(2);
  26. }
  27. @Ignore("Multiply() Not yet implemented")
  28. @Test
  29. public void testMultiply() {
  30. System.out.println(3);
  31. fail("Not yet implemented");
  32. }
  33. @Test
  34. public void testDivide() {
  35. System.out.println(4);
  36. }
  37. @Test(timeout = 1000)
  38. public void testSquareRoot() {
  39. System.out.println(5);
  40. }
  41. @Test
  42. //@Test(expected = ArithmeticException.class)
  43. public void divideByZero() {
  44. System.out.println(6);
  45. }
  46. @After
  47. public void after1(){
  48. System.out.println("@after1");
  49. }
  50. @After
  51. public void after2(){
  52. System.out.println("@after2");
  53. }
  54. @AfterClass
  55. public static void afterClass1(){
  56. System.out.println("@afterClass1");
  57. }
  58. @AfterClass
  59. public static void afterClass2(){
  60. System.out.println("@afterClass2");
  61. }
  62. }

执行结果: @beforeClass2
@beforeClass1
@before2
@before1
1
@after1
@after2
@before2
@before1
2
@after1
@after2
@before2
@before1
4
@after1
@after2
@before2
@before1
5
@after1
@after2
@before2
@before1
6
@after1
@after2
@afterClass1
@afterClass2

 

JUnit(>4.0)@BeforeClass、@Before、@Test、@After、@AfterClass、@Ignore的更多相关文章

  1. Android L(5.0)源码之图形与图像处理之动画——Frame、Tween、属性动画、SurfaceView

    工作中暂时还没涉及到,暂时先不总结

  2. 那些年,我们开发的接口之:QQ登录(OAuth2.0)

    那些年,我们开发的接口之:QQ登录(OAuth2.0) 吴剑 2013-06-14 原创文章,转载必须注明出处:http://www.cnblogs.com/wu-jian 前言 开发这些年,做过很多 ...

  3. QQ登录(OAuth2.0)

    QQ登录(OAuth2.0) 那些年,我们开发的接口之:QQ登录(OAuth2.0) 吴剑 2013-06-14 原创文章,转载必须注明出处:http://www.cnblogs.com/wujian ...

  4. 借助微软提供的url重写类库URLRewriter.dll(1.0)实现程序自动二级域名,域名需要泛解析

    二级域名和系统中会员帐号自动关联,也就是系统中注册一个会员,会员自动就可以通过二级域名来访问,比如我的帐号是zhangsan,我在morecoder.com注册后,访问zhangsan.morecod ...

  5. axios解决跨域问题(vue-cli3.0)

    一.什么是跨域 1.跨域 指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制. 2.同源策略 是指协议,域名,端口都要相同,其中有一个不同都 ...

  6. window 远程在Linux(centOS7.0)上安装JDK以及配置环境变量

    本人是在windows 7 上安装了虚拟机,虚拟机安装的是linux(centOS7.0)系统现在在Windows 上安装SecureCRT 远程虚拟机的linux系统,安装JDK以及配置环境变量. ...

  7. Springboot2.0(Spring5.0)中个性化配置项目上的细节差异

    在一般的项目中,如果Spring Boot提供的Sping MVC不符合要求,则可以通过一个配置类(@Configuration)加上@EnableWebMvc注解来实现完全自己控制的MVC配置.但此 ...

  8. C++ 的那些坑 (Day 0)

    C++ 的那些坑 (Day 0) 永远的for循环 其实这里要说的并不是for循环本身还是其中的计数变量的类型的选择. std::string s = "abcd" for (st ...

  9. sass之mixin的全局引入(vue3.0)

    sass之mixin的全局引入(vue3.0) 1.scss文件(mixin.scss) /* 渐变 */ @mixin gradual($color, $color1){ background: $ ...

随机推荐

  1. workerman定时器使用

    From: http://doc3.workerman.net/worker-development/add.html add int \Workerman\Lib\Timer::add(float ...

  2. Js参数值中含有单引号或双引号解决办法

    <script type="text/javascript"> function Display(LoginEmail, UserName, ID) {         ...

  3. CIO需加强对战略管理层面的掌控-精华篇

    当代CIO面临提升信息化作用的新机遇.CIO在企业中,不能满足于职能性的技术支撑角色,要找到新的着力点,以发挥信息化在全局战略中的作用,把信息化力量聚焦于做强做优,提高国际竞争力上来,成为企业不可或缺 ...

  4. 为VS code中的项目添加特定的智能提示功能

    当我们的在用vscode开发项目的时候, 如果项目中引用了jquery包, 我们可以下面的方式获得jquery的类型提示 npm install @types/jquery --save-dev 或我 ...

  5. 基于jQuery的tooltips插件--poshytip

    摘要: 分享一款在项目中使用的tooltips插件--poshytip,这是一款基于jQuery的插件,其特点是简单易用,支持浏览器:IE6+, FF 2+, Opera 9+, Safari 3+, ...

  6. nginx反向代理配置(nginx.conf+proxy_set_header)

    转载:https://blog.csdn.net/bjsunwei/article/details/62231209 location / { proxy_pass http://test; prox ...

  7. ASP.NET用DataSet导出到Excel

    //读取临时文件    GYYW.DA.Common.Base_SqlDataBase daBZDM = new GYYW.DA.Common.Base_SqlDataBase();    DataS ...

  8. C# 调用dephi dll 实例

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runti ...

  9. Android反编译工具介绍与简单实用方法

    Android反编译的目的无非就是为了看到APK的xml.资源和代码: 得到代码的方式:直接解压APK文件 --> 得到classes.dex文件 --> 使用 dex2jar class ...

  10. SpringMVC -- 梗概--源码--壹--收参

    附:实体类 Class : User package com.c61.entity; import java.text.SimpleDateFormat; import java.util.Date; ...