Jtest编写单元测试

发表于:2020-8-17 13:23

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:零度空间    来源:博客园

  单元测试的主要目的是保存所测试方法的主干流程正确;写单元测试需要分层进行书写,每一部分的单元测试方案和策略有所不同;下面将针对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|
  |clean table|user| 
  |insert|user|
  |id|username|password|role|
  |1|xiayy|123|manage|
  这样就就完成了数据库的一条数据准备;在具体的一个实例中按照下面的方法进行测试:
  @Test
  @DbFit(when = "prepare.newsChannelNav.record.when.wiki")
  public void testQueryNavById(){
  NewsNavDO newsNavDO = new NewsNavDO();
  newsNavDO.setId(new Long(1));
  newsNavDO.setName("hello");
  newsNavDO.setStatus("disable");
  newsNavDO result = newsNavDAO.queryNavById(new Long(3));
  want.string(result.getName()).isEqualTo(newsNavDO.getName());
  }
  完成上述的步骤就完成了dal层一个方法的测试;
  2)对于biz层的测试,需要按照下面的步骤进行测试:
  @SpringBeanByName
  private NewsChannelNavBO newsChannelNavBO;
  @SpringBeanFor
  @Mocked
  private NewsChannelNavDAO newsChannelNavDAO;
  @Test
  public void getNewsChannelNavById() {
  new NonStrictExpectations() {
  {
  //mock调用的中间结果数据
  NewsChannelNavDO newsChannelNavDO = new NewsChannelNavDO();
  newsChannelNavDO.setId(new Long(2));
  newsChannelNavDO.setName("test");
  newsChannelNavDO.setUrl("http://1688.com");
  newsChannelNavDO.setOrdering(1);
  newsChannelNavDO.setParentId(new Long(1));
  newsChannelNavDAO.queryNewsChannelNavById(new Long(2));
  result = newsChannelNavDO;
  }
  };
  //进行测试数据的判定
  NewsChannelNavDO newsNavDO = newsChannelNavBO.getNewsChannelNavById(new Long(2));
  want.string(newsNavDO.getName()).isEqualTo("test");
  }
  业务逻辑层的接口测试,主要是将中间结果数据进行mock,仿照上面的过程即可,具体含义不再赘述。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号