博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jtester使用
阅读量:4949 次
发布时间:2019-06-11

本文共 3218 字,大约阅读时间需要 10 分钟。

1、在Jtester中使用DataMap

为什么要使用DataMap?

  早先的jTester中提供了dbFit方式来准备和验证数据库数据,应该来说,这个工具解决了很多问题。

实际使用过程中,开发同学反映编辑和准备数据比较麻烦。数据操作错误需要在单独的html文件中才能
查看到,也比较麻烦。 jTester从1.1.6开始推出了一种新的数据库数据准备和验证的方法 -- DataMap方
式。DataMap对比DbFit有以下几个特性:
• 准备数据和验证数据是在java代码中,无需额外的文件。
• 因为只有java代码,数据编辑会更方便一些。
• 验证数据库数据和jTester中其它断言方式一致,错误信息直接显示在测试方法上。
• 只需要关注自己感兴趣的字段,无关的字段框架自动会帮忙填充。
• 构造数据灵活,可以根据自己需要构造特定规则的数据。
我们下面通过示例来简单的演示jTester是如何通过DataMap往数据库中插入数据和验证数据中已
经存在的数据。

例 4.1. 往数据库中插入一条数据

    

db.table("tdd_user").clean().insert(new DataMap() {{this.put("id", "1");this.put("first_name", "darui.wu");this.put("my_date", new Date());}}).commit();

 

DataMap(它是 LinkedHashMap<String, Object> 子类)是jTester中用于准备和验证数据的关键对

象, 上面那段代码完成了4件事:
• db.table("tdd_user")
  指定了插入数据的操作对象(表tdd_user),这条语句接下的操作都是针对表tdd_user的。
• clean()
  清空表tdd_user中所有数据。
• insert( ... )
  往表tdd_user中插入一条数据,其中id字段值为1,first_name字段值为
darui.wu,my_date字段值为客户端的当前日期。
• commit()
  提交前面删除数据操作和插入数据操作。
运行上面那段简单的代码后,数据库中数据状态应该如下:

配置jtester.properties文件

要在jTester矿建下进行数据库的相关的测试,必须在测试代码的classpath根路径下放置一个jtester.properties文件。并在该文件中配置相应的数据源。
 在classpath根路径下建好jtester.properties文件后,需要配置下面选项的值。
• database.type
数据库类型,目前支持mysql,oracle两种
• database.url
数据库连接url,比如jdbc:mysql://localhost/presentationtdd?
characterEncoding=UTF8
• database.userName
连接数据库的用户名
• database.password
用户密码
• database.schemaNames
数据库的具体schema
• database.driverClassName
数据库连接驱动class的全称

为了方便大家理解,下面分别给一个mysql配置示例和一个oracle配置示例

例 4.3. mysql配置示例 

database.type=mysqldatabase.url=jdbc:mysql://localhost/presentationtdd?characterEncoding=UTF8database.userName=rootdatabase.password=passworddatabase.schemaNames=presentationtdddatabase.driverClassName=com.mysql.jdbc.Driver

 例 4.4. oracle配置示例          

database.type=oracledatabase.url=jdbc:oracle:thin:@localhost:1521:crmp?args[applicationEncoding=UTF-8,databaseEncoding=UTF-8]database.userName=rootdatabase.schemaNames=testdatabase.password=xxxxdatabase.driverClassName=com.alibaba.china.jdbc.SimpleDriver

 

验证数据库中数据总数:

1 db.table("tdd_user").count.eq(1);

验证数据库中的数据:

1 db.table("tdd_user").query().propertyEqMap(newDataMap() {2 {3 this.put("id", 1);4 this.put("first_name", "wu");5 this.put("last_name", "json");6 }7 });

 

 带条件的数据查询验证:

db.table("tdd_user").queryWhere("post_code=310012").propertyEqMap(2, newDataMap() {{this.put("id", 1, 2);this.put("first_name", "darui.wu", "data.iterator");this.put("address_id", 0);this.put("sarary", 0.0);}}, EqMode.IGNORE_ORDER);

 

2、在Jtester中使用Mock

new MockUp
(){ @Mock public List
getNoahResourceByResType(String resType){ List
rs = new ArrayList
(); NoahResourceModel r= new NoahResourceModel(); r.setName("customer_key_1"); r.setValue("qt_key_1"); rs.add(r); r= new NoahResourceModel(); r.setName("customer_key_2"); r.setValue("qt_key_2"); rs.add(r); return rs; } };

 

 3、测试分组

1、将某个测试方法归为某个测试分组

@Test(groups={"tests.find"})public class FindServiceTest extends AegeanDomainBaseTest{   @Test   public void testGroup(){    }       }

 

转载于:https://www.cnblogs.com/xuelu/p/3723172.html

你可能感兴趣的文章
深入了解Oracle ASM(二):ASM File number 1 文件目录
查看>>
SQL数据库学习系列之一
查看>>
Boosting(提升方法)之AdaBoost
查看>>
CUDA学习1 在Visual Studio和CodeBlocks上配置
查看>>
JavaScript(6)——事件1.0
查看>>
2013 ACM-ICPC China Nanjing Invitational Programming Contest 总结
查看>>
【Hibernate学习笔记-5】@Formula注解的使用
查看>>
链接元素<a>
查看>>
Binding object to winForm controller through VS2010 Designer(通过VS2010设计器将对象绑定到winForm控件上)...
查看>>
Spring Boot实战笔记(二)-- Spring常用配置(Scope、Spring EL和资源调用)
查看>>
前端性能优化集【持续更新】
查看>>
第二章:webdriver 控制浏览器窗口大小
查看>>
四则运算2初步构思
查看>>
Break the Chocolate(规律)
查看>>
C#jbox小节
查看>>
结构体指针释放的问题
查看>>
C#枚举Enum[轉]
查看>>
第三百五十七天 how can I 坚持
查看>>
【动态规划】流水作业调度问题与Johnson法则
查看>>
startActivityForResult不起作用
查看>>