package com.lijun.unitils;
import java.util.Calendar;
import org.junit.Test;
import static org.unitils.reflectionassert.ReflectionAssert.*;
import static org.unitils.reflectionassert.ReflectionComparatorMode.*;
/**
* Unitils断言
* 比较对象
* 1. assertReflectionEquals(期望值,实际值,比较级别):反射断言,为我们提供了各种级别的比较断言
* (
* ReflectionComparatorMode.LENIENT_ORDER:忽略要断言集合collection或者array中元素的顺序
* ReflectionComparatorMode.IGNORE_DEFAULTS:忽略默认值,如引用类型为null,整型类型为0,断言忽略这些值的比较
* ReflectionComparatorMode.LENIENT_DATES:比较两个实例的Date是不是都被设置了值或者为null,而忽略Date的值是否相等
* )
* 2. assertLenientEquals:断言,既忽略顺序又忽略默认值的断言
* 比较属性
* 1. assertPorpertyReflectionEquals
* 2. assertPorpertyLenientEquals
*
*/
public class AssertReflectionEqualsTest {
@Test
public void testReflection() {
User user1 = new User("tom","1234");
User user2 = new User("tom","1234");
assertReflectionEquals(user1, user2);
}
Integer[] orderList1 = new Integer[]{1,2,3};
Integer[] orderList2 = new Integer[]{3,2,1};
@Test
public void testLenient() {
//测试两个数组的值是否相等,忽略顺序
assertReflectionEquals(orderList1, orderList2, LENIENT_ORDER);
assertLenientEquals(orderList1, orderList2);
//测试两个对象的值是否相等,忽略时间值是否相等
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);
}
public void testProperty() {
User user = new User("tom","1234");
assertPropertyReflectionEquals("userName", "tom", user);
assertPropertyLenientEquals("lastVist", null, user);
}
}
分享到:
相关推荐
标题“使用Unitils测试DAO”涉及的是在Java开发中如何利用Unitils库来高效地测试数据访问对象(DAO)层的代码。Unitils是一个强大的、易于使用的集成测试框架,它简化了诸如数据库、ORM(对象关系映射)框架如...
对于依赖注入,Unitils能够轻松地将Spring管理的Bean注入到单元测试中,允许在测试中使用Spring容器中的SessionFactory。它也简化了Mock对象的创建,特别是在使用EasyMock时,通过反射参数匹配使得Mock对象的使用...
在使用 Unitils 进行测试时,我们可以利用其提供的注解,例如 `@UsingDataSet` 来加载数据库数据,`@TestedObject` 或 `@InjectFields` 来注入测试对象。同时,配合 EasyMock,我们可以使用 `expect` 方法定义模拟...
本教程将向您展示如何使用 Unitils 来编写单元测试,并介绍一些常见的单元测试技术。 断言应用 ---------- 在单元测试中,断言是非常重要的一部分。断言的目的是为了验证测试结果是否与预期结果相符。Unitils 提供...
这个压缩包包含了运行和使用Unitils所需的所有组件,使得开发者无需单独下载和管理各个依赖。 Unitils框架的核心特点包括: 1. **数据库支持**:它提供了自动配置数据库连接,支持多种数据库(如MySQL, Oracle, ...
描述中提到的链接没有具体内容,但通常在博客文章中,作者可能会详细解释如何配置和使用Unitils进行数据库测试,分享实际示例代码,以及解决可能遇到的问题和最佳实践。 标签“源码”和“工具”表明该博文可能涉及...
在使用Unitils时,开发者可以利用其丰富的注解来简化测试编写。例如,`@Test`用于标记测试方法,`@DbSetup`用于指定测试数据的来源,`@DbUnit`用于数据库的初始化和清理等。此外,Unitils 还提供了一套灵活的配置...
Unitils框架与模块扩展Unitils这个Java开源包的目的是让单元测试变得更加...1,JUnit4ClassRunner简介所有的测试方法testmethod都是在Runner下执行的,可以将Runner理解为junit运行的容器,默认情况下junit会使用JUnit4
标题 "spock-unitils-0.7-groovy-2.0.zip" 暗示这是一个软件库,可能是一个测试框架或工具,结合了Spock、Unitils和Groovy技术。Spock是一个基于JVM的BDD(行为驱动开发)框架,主要针对Groovy和Java语言,提供了一...
Unitils 模块 - 启动 Selenium Web 驱动程序以测试 Web 应用程序的简单方法。
Unitils对EasyMock的集成使得在单元测试中使用这种模拟技术变得更容易。 总而言之,Unitils通过提供一系列实用工具,使得开发者能够更专注于编写核心的测试逻辑,而不是被测试的基础设施所拖累。它通过提供断言方法...
在实际操作中,`chapter17`这个文件可能包含了关于第17章的详细教程或示例代码,这部分内容可能会指导我们如何结合使用Unitils和DBUtils进行资源配准测试。通过学习这个章节,开发者可以了解到如何配置和集成这两个...
这里提到的四个文件是Java开发中常用的单元测试框架和库,分别是JUnit、DBUnit、Unitils和Mockito。让我们逐一深入探讨它们的功能和使用方法。 **JUnit** 是Java领域中最广泛使用的单元测试框架,这里的`junit-4.11...
16.6 使用unitils测试Service层 16.7 测试Web层 16.7.1 对LoginController进行单元测试 16.7.2 使用Spring Servlet API模拟对象 16.7.3 使用Spring RestTemplate测试 16.7.4 使用Selenium测试 16.8 小结 第17章 实战...
16.6 使用unitils测试Service层 16.7 测试Web层 16.7.1 对LoginController进行单元测试 16.7.2 使用Spring Servlet API模拟对象 16.7.3 使用Spring RestTemplate测试 16.7.4 使用Selenium测试 16.8 小结 第17章 实战...
在使用dbunit之前,需要在pom.xml文件中添加相关的依赖项,包括unitils-core、unitils-dbunit、unitils-io、unitils-database和unitils-spring等。同时,需要在resource文件夹下创建一个unitils.properties配置文件...
第16章:有别于一般书籍的单元测试内容,本书以当前最具实战的JUnit4+Unitils+ Mockito复合测试框架对如何测试数据库、Web的应用进行了深入的讲解。 第17章:以一个实际的项目为蓝本,带领读者从项目需求分析、...
第16章:有别于一般书籍的单元测试内容,本书以当前最具实战的JUnit4+Unitils+ Mockito复合测试框架对如何测试数据库、Web的应用进行了深入的讲解。 第17章:以一个实际的项目为蓝本,带领读者从项目需求分析、...