1.maven项目直接在pom.xml文件中引入依赖
2.非maven项目下载jar包
JUnit的核心注解
JUnit 4 常用的几个annotation 介绍
★ @Before:初始化方法,在任何一个测试执行之前必须执行的代码;
★ @After:释放资源,在任何测试执行之后需要进行的收尾工作。在每个测试方法执行之后执行一次,该annotation只能修饰public void 方法;
★ @Test:测试方法,表明这是一个测试方法。在Junit中将会自动被执行。该annotation只你呢个修饰public void 方法。对于方法的声明也有如下要求:名字可以随便取,没有任何限制,但是返回值必须为void,而且不能有任何参数。如果违反这些规定,会在运行时抛出一个异常。至于方法内该写些什么,那就要看你需要测试些什么了;在这里可以测试期望异常和超时时间,如 @Test(timeout = 100):我们给测试函数设定一个执行时间,超过了这个时间(100毫秒),它们就会被系统强行终止,并且系统还会向你汇报该函数结束的原因是因为超时,这样你就可以发现这些Bug了。
★ @Ignore:忽略的测试方法,标注的含义就是“某些方法尚未完成,暂不参与此次测试”;这样的话测试结果就会提示你有几个测试被忽略,而不是失败。一旦你完成了相应函数,只需要把@Ignore标注删去,就可以进行正常的测试。
★ @BeforeClass:针对所有测试,只执行一次,且必须为public static void;
★ @AfterClass:针对所有测试,将会在所有测试方法执行结束后执行一次,且必须为public static void;
所以一个Junit 4 的单元测试用例执行顺序为:@BeforeClass –> @Before –> @Test –> @After –> @AfterClass;每一个测试方法的调用顺序为:@Before –> @Test –> @After。
思维导图
[attach]123164[/attach]
详情
[attach]123165[/attach]
额外内容
@Test的属性
1.@Test(timeout=1)设置超时时间,以s为单位,超出报错。
2.@Test(expected= 异常类型IndexOutOfBoundsException.class) 有一个预期的异常时,不报错
对测试方法注意
1.测试方法上必须使用@Test进行修饰
2.测试方法必须使用public void修饰,不带任何参数
3.新建一个源码目录(如test)来存放我们的测试代码
4.测试类的包应该和被测试类保持一致
5.建议测试类使用Test作为类名的后缀,测试方法使用test作为方法名的前缀
凡是项目中集成了Spring框架的,由于bean实列都交给spring 管理(xml配置文件),要做单元测试就比较苦难,junit4 单元测试非常方便。
常用断言,包含相同的方法的重载方法
Assert.方法名( ),方法名有很多,用法一样,简单高效。
[attach]123166[/attach]
项目中包含Spring框架进行bean的管理,单元测试核心要点。
一、加入依赖包
使用Spring的测试框架需要加入以下依赖包:
JUnit 4 (官方下载:http://www.junit.org/)
Spring Test (Spring框架中的test包)
Spring 相关其他依赖包(不再赘述了,就是context等包)
二、创建测试源目录和包
在此,推荐创建一个和src平级的源文件目录,因为src内的类都是为日后产品准备的,而此处的类仅仅用于测试。而包的名称可以和src中的目录同名,这样由于在test源目录(source file),所以不会有冲突,而且名称又一模一样,更方便检索。
三、创建测试类
创建一个测试用的类,推荐名称为 “被测试类名称 + Test”。
四、关于单元测试时,事物回滚的核心
测试类应继承与 AbstractJUnit4SpringContextTests 或 AbstractTransactionalJUnit4SpringContextTests
对于 AbstractJUnit4springcontextTests 和 AbstractTransactionalJUnit4SpringContextTests 类的选择:如果再你的测试类中,需要用到事务管理(比如要在测试结果出来之后回滚测试内容),就可以使用AbstractTransactionalJUnit4SpringTests类。事务管理的使用方法和正常使用Spring事务管理是一样的。再此需要注意的是,如果想要使用声明式事务管理,即使用AbstractTransactionalJUnitSpringContextTests类,请在applicationContext.xml文件中加入transactionManager bean:
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) | Powered by Discuz! X3.2 |