16.2 测试之unitils
来源:互联网 发布:蓝色大门 知乎 编辑:程序博客网 时间:2024/04/24 00:02
需要下载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.javapackage 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.javapackage 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.javapackage 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.javapackage 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()); }}
0 0
- 16.2 测试之unitils
- 单元测试之测试整合框架Unitils
- 单元测试系列之3:测试整合之王Unitils
- 单元测试系列之3:测试整合之王Unitils
- 单元测试系列之4:使用Unitils测试DAO层
- 单元测试系列之4:使用Unitils测试DAO层
- 单元测试系列之4:使用Unitils测试DAO层
- 单元测试系列之5:使用unitils测试Service层
- 测试整合之王Unitils(单元测试系列)
- UNITILS 测试框架
- unitils学习2一使用Unitils测试DAO层
- unitils学习3一使用unitils测试Service层
- unitils 测试框架介绍(一)
- unitils 测试框架介绍(二)
- springMVC4(6)Unitils断言与整合测试
- Maven整合Junit unitils测试框架 cannot retrieve JUnit method
- Unitils配置文件(Unitils介绍四)
- 用Unitils测试DAO时出现Write operations are not allowed in read-only mode异常
- onvif学习 SOAP WSDL
- C# 对数据库操作的帮助类SQLHelper.cs
- json字符串转json对象或者数组
- 公钥私钥+数字证书原理 - 鹏 - 转载
- 使用UIBezierPath和CAShapeLayer高效为UIView添加圆角
- 16.2 测试之unitils
- AWS 使用CLI将IAM角色附加到现有的EC2实例中
- JDK安装过程中出现“javac不是内部或外部命令”问题的解决
- UII自动化之Appium
- 索引长度与区分度
- 【笔记】人力资源机器
- JS Date格式化日期问题,时间显示区别
- bzoj 1965: [Ahoi2005]SHUFFLE 洗牌 (快速幂)
- 关于js中的事件冒泡和事件捕获问题