关于Junit4笔记

来源:互联网 发布:php一句话木马下载 编辑:程序博客网 时间:2024/05/19 23:16

测试类,Junit3和Junit4.

创建步骤:

(1)创建src文档——创建test目录——在导出项目时候要与测试代码分梨,测试代码不对项目有任何的影响。

(2)导入jar包(当然,也有自带的类库)

(3)编写测试代码


测试总结

* 1.测试方法上必须使用@Test进行修饰
* 2.测试方法必须使用public void 进行修饰,不能待任何的参数
* 3.新建一个源代码目录
* 4.测试类的爆应该和被测试类保持一致
* 5.测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖
* 6.测试类使用Test作为类名的后缀(让看起来整齐,非必须)

* 7.测试方法使用test作为方法名的前缀(在方法前边加test显得更加规范,非必须


关于JUnit中assertEquals和assertSame方法的不同


1)提供的接口数量不完全相同。
assertEquals支持boolean,long,int等等java primitiveType变量。
assertSame只支持Object。

 

2)比较的逻辑不同,结果可能不同。
assertSame是对象直接比较。assertEquals能利用被比较对象提供的比较逻辑来进行比较。使得同样的条件下,两者的运行结果不一定相同。简单解释如下:
assertEquals(Object A,  Object B) 的比较逻辑:如果 A,B都是Null,返回true。否则调用 A.equals(B)来判断。


assertSame(Object A, Object B)的比较逻辑:以A == B运算的结果来判断。

A.equals(B) 和 A==B 的差别在于。如果A没有重写java.lang.Object的equals方法,那么就是两个java对象的内存地址比较,比较结果和 A==B的结果相同。


如果A重写了equals方法(比如GregorianCalendar,BigDecimal类),那么比较的结果不一定和A==B的结果相同。



创建Junit类时候,如果勾选setup等方法,出现以下的方法注解:

1、@Test:将一个普通的方法修饰成为一个测试方法2、@BeforeClass:它会在所有的方法运行前被执行,static修饰3、@AfterClass:它会在所有的方法运行结束后被执行,static修饰4、@Before:会在每一个测试方法被运行前执行一次5、@After:会在每一个测试方法运行后被执行一次
6、@Test(expected=XXX(异常类).class):会抛出该异常7、@Test(timeout=毫秒 ):设置执行的时间,用于结束死循环或是性能测试8、@Ignore:所修饰的测试方法会被测试运行器忽略,:@Ignore("忽略的原因...")9、@RunWith:可以更改测试运行器org.junit.runner.Runne

 关于 Junit参数化设置1、更改默认的测试运行器为RunWith(Parameterized.class)2、声明变量来存放预期值和结果值3、声明一个返回值为Collection的公共静态方法,并使用@Parameters进行修饰4、为测试类声明一个带有参数的公共构造方法,并在其中为之声明变量赋值 

@Before修饰的方法会在所有方法被调用前被执行而且该方法是静态的   所以当测试被夹在后接着就会运行它,而且在内存中它只会存在一份实例  它比较适合加载配置文件@AfterClass所修饰的方法通常用来对资源的管理  如关闭数据库的连接@before和@After会在每个测试方法的前后各执行一次
运行顺序如图:


代码:

package com.lnsf.test;import static org.junit.Assert.*;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;/*** @author HH * @version 创建时间:2017年7月16日 上午10:36:17* @introduction*/public class Day0716Test {@BeforeClasspublic static void setUpBeforeClass() throws Exception {System.out.println("每次执行都会先运行一次@BeforeClass,只运行一次,适合加载配置文件");}@AfterClasspublic static void tearDownAfterClass() throws Exception {System.out.println("每次执行都会最后运行一次@AfterClass,只运行一次,适合关闭资源、释放资源");}@Beforepublic void setUp() throws Exception {System.out.println("每个test之前都会运行一个@Before测试,适合打开固定代码");}@Afterpublic void tearDown() throws Exception {System.out.println("每个test之后都会运行一个@After测试,适合结束固定代码");}@Testpublic void test() {System.out.println("是test1");}@Testpublic void test1() {System.out.println("是test2");}}

运行结果:
每次执行都会先运行一次@BeforeClass,只运行一次,适合加载配置文件
每个test之前都会运行一个@Before测试,适合打开固定代码
是test1
每个test之后都会运行一个@After测试,适合结束固定代码
每个test之前都会运行一个@Before测试,适合打开固定代码
是test2
每个test之后都会运行一个@After测试,适合结束固定代码
每次执行都会最后运行一次@AfterClass,只运行一次,适合关闭资源、释放资源


运行:右击方法名——绿色——表示通过测试

红色——表示测试失败,有错误


同时需要学会看错误提示:



测试通过:



必须添加注解@Test



分包显示如图:





原创粉丝点击