Jtest编写单元测试
上一篇 /
下一篇 2018-11-02 16:22:01
/ 个人分类:单元测试工具
(1)单元测试的主要目的是保存所测试方法的主干流程正确;
(2)写单元测试需要分层进行书写,每一部分的单元测试方案和策略有所不同;下面将针对dal层和biz进行说明
1)对于dal层次使用dbFit插件
首先,需要进行数据库基本配置,配置文件名为jtester.properties,放置在classspath根目录下,具体的一些配置项参见详细的实例文件; database.only.testdb.allowing=false database.type=mysql database.url=jdbc:mysql://*****/dbname database.userName=username database.password=password database.schemaNames=name database.driverClassName=com.mysql.jdbc.Driver spring.datasource.name=**** DatabaseModule.Transactional.value.default=rollback |
第二步,需要进行数据文件的准备,这个过程中需要使用到@dbFit的WiKi语法,
例如,为user表准备一些数据,使用wiki语法的实现为
|connect| |cleantable|user| |insert|user| |id|username|password|role| |1|xiayy|123|manage| |
这样就就完成了数据库的一条数据准备;在具体的一个实例中按照下面的方法进行测试:
@Test @DbFit(when="prepare.newsChannelNav.record.when.wiki") publicvoidtestQueryNavById(){ NewsNavDOnewsNavDO=newNewsNavDO(); newsNavDO.setId(newLong(1)); newsNavDO.setName("hello"); newsNavDO.setStatus("disable"); newsNavDOresult=newsNavDAO.queryNavById(newLong(3)); want.string(result.getName()).isEqualTo(newsNavDO.getName()); } |
完成上述的步骤就完成了dal层一个方法的测试;
2)对于biz层的测试,需要按照下面的步骤进行测试:
@SpringBeanByName privateNewsChannelNavBOnewsChannelNavBO; @SpringBeanFor @Mocked privateNewsChannelNavDAOnewsChannelNavDAO; @Test publicvoidgetNewsChannelNavById(){ newNonStrictExpectations(){ { |
//mock调用的中间结果数据
NewsChannelNavDOnewsChannelNavDO=newNewsChannelNavDO(); newsChannelNavDO.setId(newLong(2)); newsChannelNavDO.setName("test"); newsChannelNavDO.setUrl("http://1688.com"); newsChannelNavDO.setOrdering(1); newsChannelNavDO.setParentId(newLong(1)); newsChannelNavDAO.queryNewsChannelNavById(newLong(2)); result=newsChannelNavDO; } }; |
//进行测试数据的判定
NewsChannelNavDOnewsNavDO=newsChannelNavBO.getNewsChannelNavById(newLong(2)); want.string(newsNavDO.getName()).isEqualTo("test"); } |
业务逻辑层的接口测试,主要是将中间结果数据进行mock,仿照上面的过程即可。
相关阅读:
- 如何编写单元测试-基于Spring (旺达, 2018-10-17)
- 如何进行Django单元测试 (旺达, 2018-10-18)
- Django 单元测试 (旺达, 2018-10-19)
- java单元测试之Mock静态方法 (旺达, 2018-10-22)
- Flask之单元测试 (旺达, 2018-10-23)
- SSH框架下单元测试的实现 (旺达, 2018-10-24)
- springboot之单元测试 (旺达, 2018-10-26)
- Android 单元测试之 JUnit4 (旺达, 2018-10-30)
- Java Junit单元测试 (旺达, 2018-10-31)
- pytest 单元测试 (旺达, 2018-11-01)
收藏
举报
TAG:
jtest
Jtest
单元测试