Java注解((Annotation)的使用方法是@注解名 ,能通过简单的词语来实现一些功能。在junit中常用的注解有@Test、@Ignore、@BeforeClass、@AfterClass、@Before、@After、@Runwith、@Parameters
 
以下是相关的介绍和使用说明:
 
一.@Test
 
在junit3中,是通过对测试类和测试方法的命名来确定是否是测试,且所有的测试类必须继承junit的测试基类。在junit4中,定义一个 测试方法变得简单很多,只需要在方法前加上@Test就行了。
 
注意:测试方法必须是public void,即公共、无返回数据。可以抛出异常。
 
二.@Ignore
 
有时候我们想暂时不运行某些测试方法\测试类,可以在方法前加上这个注解。在运行结果中,junit会统计忽略的用例数,来提醒你。但是不建议经常这么做,因为这样的坏处时,容易忘记去更新这些测试方法,导致代码不够干净,用例遗漏。
 
三.@BeforeClass
 
当我们运行几个有关联的用例时,可能会在数据准备或其它前期准备中执行一些相同的命令,这个时候为了让代码更清晰,更少冗余,可以将公用的部分提取出来,放在一个方法里,并为这个方法注解@BeforeClass。意思是在测试类里所有用例运行之前,运行一次这个方法。例如创建数据库连接、读取文件等。
 
注意:方法名可以任意,但必须是public static void,即公开、静态、无返回。这个方法只会运行一次。
 
四.@AfterClass
 
跟@BeforeClass对应,在测试类里所有用例运行之后,运行一次。用于处理一些测试后续工作,例如清理数据,恢复现场。
 
注意:同样必须是public static void,即公开、静态、无返回。这个方法只会运行一次。
 
五.@Before
 
与@BeforeClass的区别在于,@Before不止运行一次,它会在每个用例运行之前都运行一次。主要用于一些独立于用例之间的准备工作。比如两个用例都需要读取数据库里的用户A信息,但第一个用例会删除这个用户A,而第二个用例需要修改用户A。那么可以用@BeforeClass创建数据库连接。用@Before来插入一条用户A信息。
 
注意:必须是public void,不能为static。不止运行一次,根据用例数而定。
 
六.@After
 
与@Before对应。
 
七.@Runwith
 
首先要分清几个概念:测试方法、测试类、测试集、测试运行器。
 
其中测试方法就是用@Test注解的一些函数。测试类是包含一个或多个测试方法的一个**Test.java文件,测试集是一个suite,可能包含多个测试类。测试运行器则决定了用什么方式偏好去运行这些测试集/类/方法。
 
而@Runwith就是放在测试类名之前,用来确定这个类怎么运行的。也可以不标注,会使用默认运行器。
 
常见的运行器有:
 
1. @RunWith(Parameterized.class) 参数化运行器,配合@Parameters使用junit的参数化功能
 
2.@RunWith(Suite.class)
@SuiteClasses({ATest.class,BTest.class,CTest.class})
 
测试集运行器配合使用测试集功能
 
3.@RunWith(JUnit4.class)
 
junit4的默认运行器
 
4.@RunWith(JUnit38ClassRunner.class)
 
用于兼容junit3.8的运行器
 
5.一些其它运行器具备更多功能。例如@RunWith(SpringJUnit4ClassRunner.class)集成了spring的一些功能
 
八:@Parameters
 
用于使用参数化功能。

最新文章

  1. Android中常见功能包描述
  2. java类加载器-系统类加载器
  3. 《细细品味Hive》系列课程
  4. AndroidStudio权威教程 AS添加第三方库的6种方式(Jar module so等)
  5. 《你是我的小羊驼》游戏ios源码
  6. SDUT 3571 Password 暴力搜索
  7. ASP.NET MVC Controller向View传值方式总结
  8. Delphi的没落有三个原因(比较贴切)
  9. [BZOJ]1005 明明的烦恼(HNOI2008)
  10. Java集合之Stack
  11. springcloud的turbine集成zookeeper
  12. [luogu2144][bzoj1002][FJOI2007]轮状病毒【高精度+斐波那契数列+基尔霍夫矩阵】
  13. bzoj4176. Lucas的数论 杜教筛
  14. 如何查看第三方apk的信息
  15. 基于GoogLeNet的不同花分类微调训练案例
  16. Android 了解1G 2G 3G 知识
  17. 在linux环境下为eclipse配置jdk以及Tomcat服务(附图解详细步骤)
  18. BZOJ 1196: [HNOI2006]公路修建问题 Kruskal/二分
  19. 设备树驱动API【原创】
  20. iphone在微信中audio 音频无法自动播放

热门文章

  1. C#生成ZIP压缩包
  2. java Spring 各版本jar包下载地址
  3. web print
  4. 3dmax导入模型,解决贴图不显示的问题
  5. 表单元素的required,autocomplete,list用法
  6. Info.plist的CFBundleIdentifier、CFBundleName、BundleDisplayName
  7. Python不可变对象
  8. [20180713]关于hash join 测试中一个疑问.txt
  9. asp.net mvc中的后台验证
  10. python第三天 变量 作业