Junit4入门测试附带了点Hbernate

1package com.zlp.test; 2 3import static org.junit.Assert.assertEquals; 4 5import java.util.Iterator; 6 7import org.hibernate.Query; 8import org.hibernate.Session; 9import org.hibernate.SessionFactory; 10import org.hibernate.cfg.Configuration; 11import org.junit.After; 12import org.junit.AfterClass; 13import org.junit.Before; 14import org.junit.BeforeClass; 15import org.junit.Ignore; 16import org.junit.Test; 17 18import com.zlp.hibernate.Person; 19 /* 20 * 下面是几种常用的测试批注: 21 *@Test:进行测试的方法 22 @Before:初始化方法,每个@Test批注的方法执行前都会先调用此方法 23 @After:释放资源,每个@Test批注的方法执行后都会调用此方法 24 @BeforeClass:必须为static void,测试类中第一个执行的方法,只执行一次 25 @AfterClass:必须为static void,测试类中最后一个执行的方法,只执行一次 26 @Ignore:忽略的测试方法,不影响最终测试结果是通过还是没通过 27 一个JUnit 4 的单元测试用例执行顺序为: 28 @BeforeClass –> @Before –> @Test –> @After –> @AfterClass 29 每一个测试方法的调用顺序为: 30 @Before –> @Test –> @After 31 测试类一般写成XXXtest,测试方法用testXXX */ 32public class HibernateUtilsTest { 33 public static Session session = null; 34 /* 35 * @BeforeClass: 所有测试开始之前运行 //必须定义为static方法 36 * @AfterClass: 所有测试结束之后运行 //必须定义为static方法 37 */ 38 39 40 @BeforeClass 41 public static void classBefore(){ 42 System.out.println("~~~~~~classBefore~~~~~~~~~"); 43 } 44 45 @Before 46 public void init(){ 47 System.out.println("~~~~~before~~~~~~~~"); 48 Configuration config = new Configuration().configure(); 49 SessionFactory factory = config.buildSessionFactory(); 50 session = factory.openSession(); 51 } 52 //@Ignore 53 @Test 54 public void testSave(){ 55 session.beginTransaction().begin(); 56 Query sqlquery = session.createQuery("from Person"); 57 Iterator<Person> it = sqlquery.iterate(); 58 while(it.hasNext()) { 59 Person person = it.next(); 60 System.out.println(person.getPassword()); 61 } 62 } 63 //@Ignore 64 @Test 65 public void add(){ 66 int a = 1; 67 int b = 2; 68 assertEquals(3, a+b); 69 70 } 71 /* 72 * 该元数据传入了一个时间(毫秒)给测试方法,如果测试方法在制定的时间之内没有运行完,则测试也失败。 73 */ 74 @Test(timeout=2000) 75 public void testTimeOut(){ 76 for (int i = 0; i < 10; i++) { 77 try { 78 Thread.sleep(100); 79 80 }catch (Exception e) { 81 // TODO: handle exception 82 } 83 } 84 } 85 /* 86 * 该元数据标记的测试方法在测试中会被忽略。,你可以为该标签传递一个String的参数, 87 * 来表明为什么会忽略这个测试方法。比如:@lgnore(“该方法还没有实现”), 88 * 在执行的时候,仅会报告该方法没有实现,而不会运行测试方法。 89 */ 90 @Ignore("该标签会忽略此测试方法") 91 @Test 92 public void add1(){ 93 int a = 1; 94 int b = 2; 95 assertEquals(3, a+b); 96 97 } 98 99 @Test(expected=NullPointerException.class) 100 public void testException(){ 101 throw new NullPointerException(); 102 } 103 104 105 @After 106 public void destory(){ 107 System.out.println("~~~~~~after~~~~~"); 108 session.beginTransaction().commit(); 109 session.close(); 110 } 111 @AfterClass 112 public static void classAfter(){ 113 System.out.println("~~~~~~classAfter~~~~~~~~~"); 114 } 115 116}

Hamcrest

JUnit4.4引入了Hamcrest框架,Hamcrest提供了一套匹配符Matcher,这些匹配符更接近自然语言,可读性高,更加灵活;

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )