有时候咱们须要按照顺序执行咱们的单元测试方法,如在测试Dao层的时候要按照测试插入方法、查询方法、更新方法、删除方法的顺序测试。java
package com.tiamaes.dao; import static org.junit.Assert.fail; import java.util.Date; import static org.junit.Assert.*; import org.junit.Before; import org.junit.FixMethodOrder; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.MethodSorters; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.tiamaes.bean.GjdsBusSite; import com.tiamaes.bean.dao.GjdsBusSiteDao; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:applicationContext.xml") @FixMethodOrder(MethodSorters.DEFAULT) public class GjdsBusSiteDaoTest { private GjdsBusSite bean = new GjdsBusSite(); //private String id = UUID.randomUUID().toString(); private String id = "57706cd4-244e-4101-a317-ee34347c4168"; @Autowired private GjdsBusSiteDao gjdsBusSiteDao; @Before public void init(){ System.out.println(id); bean.setId(id); bean.setBusNo("125412"); bean.setLat(123.1111); bean.setLng(24.1111); bean.setSiteTime(new Date()); bean.setLineNo("B1"); } @Test public void testDao(){ assertNotNull(this.gjdsBusSiteDao); } @Test public void testSave() { this.gjdsBusSiteDao.save(bean); } @Test public void testGet() { GjdsBusSite entity = this.gjdsBusSiteDao.get(id); assertNotNull(entity); assertNotNull(id,entity.getId()); } @Test @Ignore public void testUpdate() { fail("Not yet implemented"); } @Test @Ignore public void testRemove() { //fail("Not yet implemented"); this.gjdsBusSiteDao.remove(id); GjdsBusSite e = this.gjdsBusSiteDao.get(id); assertNull(e); } }
由于用到了Spring因此须要将Runner指定为SpringJUnit4ClassRunner并使用@ContextConfiguration指定配置文件。spring
@Before用来初始化Bean,在每一个方法执行时都会执行一次app
@Ignore指定忽略此测试方法dom
@FixMethodOrder用来指定方法执行顺序,传入一个MethodSorters单元测试
DEFAULT会按照方法的顺序执行测试
NAME_ASCENDING:对方法名升序排序,而后按照排序后的顺序执行this