需要下载jar包
几种断言范例:
package sample.unitils;
import java.util.*;
import org.junit.Test;
import static org.unitils.reflectionassert.ReflectionAssert.*;
import static org.unitils.reflectionassert.ReflectionComparatorMode.*;
import com.baobaotao.domain.User;
public class ReflectionAssertTest {
@Test
public void testReflectionEquals(){
User user1 = new User("tom","1234");
User user2 = new User("tom","1234");
assertReflectionEquals(user1, user2);
}
@Test
public void testArrayLenientEquals(){
Integer orderList1[] = new Integer[]{1,2,3};
Integer orderList2[] = new Integer[]{3,2,1};
//测试两个数组的值是否相等,忽略顺序
assertLenientEquals(orderList1, orderList2);
assertReflectionEquals(orderList1, orderList2,LENIENT_ORDER);
//测试两个对象的值是否相等,忽略时间值是否相等
User user1 = new User("tom","1234");
Calendar cal1 = Calendar.getInstance();
user1.setLastVisit(cal1.getTime());
User user2 = new User("tom","1234");
Calendar cal2 = Calendar.getInstance();
cal2.set(Calendar.DATE, 15);
user2.setLastVisit(cal2.getTime());
assertReflectionEquals(user1, user2,LENIENT_DATES);
assertLenientEquals(user1, user2);
}
@Test
public void testPropertyLenientEquals(){
User user = new User("tom","1234");
assertPropertyReflectionEquals("userName", "tom", user);
assertPropertyLenientEquals("lastVisit", null, user);
}
}
unitils集成spring
需要 unitils-spring.jar
在src目录下有文件:baobaotao-service.xml 、baobaotao-dao.xml、jdbc.properties等。
先写一个基类加载配置文件:
-- BaseServiceTest.java
package sample.unitils.spring;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.unitils.UnitilsJUnit4;
import org.unitils.spring.annotation.SpringApplicationContext;
// 就在src目录下
@SpringApplicationContext({"baobaotao-service.xml", "baobaotao-dao.xml"})
public class BaseServiceTest extends UnitilsJUnit4 {
// 加载spring上下文,是public的,所以子类可以直接用不用再声明一次。
@SpringApplicationContext
public ApplicationContext applicationContext;
@Test
public void testApplicationContext(){
assertNotNull(applicationContext);
}
}
子类:
-- SimpleUserServiceTest.java
package sample.unitils.spring;
import org.junit.Test;
import org.unitils.spring.annotation.SpringBean;
import org.unitils.spring.annotation.SpringBeanByName;
import org.unitils.spring.annotation.SpringBeanByType;
import com.baobaotao.service.UserService;
import static org.junit.Assert.*;
public class SimpleUserServiceTest extends BaseServiceTest {
//Spring容器中加载Id为"userService"的Bean
@SpringBean("userService")
private UserService userService1;
//从Spring容器中加载与UserService相同类型的Bean
@SpringBeanByType
private UserService userService2;
//从Spring容器中加载与userService相同名称的Bean
@SpringBeanByName
private UserService userService;
@Test
public void testApplicationContext(){
assertNotNull(applicationContext);
}
@Test
public void testUserService(){
assertNotNull(userService);
assertNotNull(userService1);
assertNotNull(userService2);
assertEquals("john123",userService.findUserByUserName("john123").getUserName());
}
}
unitils的配置文件
有三个级别的配置,每个级别可以覆盖前一个配置。
1. Unitils-defaults.properties:默认配置文件,在Unitils自己的发布包中。
2. Unitils.propertis:包含项目范围的配置
3. Unitils-local.properites:包含用户规范配置
第一个文件,Unitils-defaults.properties,包含默认值并且被打包在Unitils.jar.你不需要改变这个文件,不过你可以用来做参考,因为他包含了所有对Unitils的可能配置
后两个文件需要自己修改部分内容。
整个文件结构如下图:
unitils集成Hibernate
需要unitils-orm.jar
先写个父类:
-- BaseDaoTest.java
package sample.unitils.hibernate;
import static org.junit.Assert.assertNotNull;
import org.hibernate.SessionFactory;
import org.junit.Test;
import org.unitils.UnitilsJUnit4;
import org.unitils.orm.hibernate.annotation.HibernateSessionFactory;
@HibernateSessionFactory("hibernate.cfg.xml")
public class BaseDaoTest extends UnitilsJUnit4{
// 声明为public,子类可以直接调用
@HibernateSessionFactory
public SessionFactory sessionFactory;
@Test
public void testSessionFactory(){
assertNotNull(sessionFactory);
System.out.println(sessionFactory);
}
}
子类:
-- SimpleUserDaoTest.java
package sample.unitils.hibernate;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import org.unitils.orm.hibernate.HibernateUnitils;
import com.baobaotao.dao.hibernate.WithoutSpringUserDaoImpl;
public class SimpleUserDaoTest extends BaseDaoTest {
private WithoutSpringUserDaoImpl userDao;
// 初始化 userDao
@Before
public void init(){
userDao = new WithoutSpringUserDaoImpl();
userDao.setSessionFactory(sessionFactory);
}
//Hibernate映射测试
@Test
public void testMappingToDatabase() {
HibernateUnitils.assertMappingWithDatabaseConsistent();
}
// 测试userDao
@Test
public void testUserDao(){
assertNotNull(userDao);
assertNotNull(userDao.findUserByUserName("john123"));
assertEquals("john123", userDao.findUserByUserName("john123").getUserName());
}
}