@Test(timeout = 10)

测试,该注解必须加到方法上

timeout超时时间,单位是毫秒

终止死循环,当达到设定的值,结束循环

@Ignore

忽略不想被测试的方法,该注解必须加到方法上,也可以加到类上(慎用)

@RunWith(SpringJUnit4ClassRunner.class)

把junit和spring整合到一块,该注解加到类上

@ContextConfiguration(locations = {“classpath:conf/applicationContext.xml”})

用于加载spring配置文件的注解,添加到类上

locations代表spring配置文件路径的数组,数组的类型为Stirng

classpath:这个东西代表从源包下开始寻找

@Resource(name = “blogService”)

注入属性的注解,就相当于set、get方法,name指明bean的id值

@Before

在所有方法之前执行,一般加到方法上

@After

在所有方法之后执行,一般加到方法上

@Transactional

@TransactionConfiguration(transactionManager = “transactionManager”, defaultRollback = true)

上边这俩注解要一块用,用于事物控制,加到类上

transactionManager代表配置文件中事务管理器bean的id值

defaultRollback代表事物回滚,默认值为true,是回滚的

assert常用方法

Assert.assertEquals(“message”,A,B):

判断对象A和B是否相等,这个判断比较时调用了equals()方法。

Assert.assertSame(“message”,A,B):

判断对象A和B是否相同,使用的是==操作符。

Assert.assertTure(“message”,A):

判断A条件是否为真。

Assert.assertFalse(“message”,A):

判断A条件是否不为真。

Assert.assertNotNull(“message”,A):

判断A对象是否不为null

Assert.assertArrayEquals(“message”,A,B):

判断A数组与B数组是否相等。

公用注解

@WebMvcTest

主要用于controller层测试,只覆盖应用程序的controller层,HTTP请求和响应是Mock出来的,因此不会创建真正的连接。因此需要创建 MockMvc bean进行模拟接口调用

@RunWith(SpringRunner.class)

@RunWith(SpringJUnit4ClassRunner)

是Junit和Spring Boot test联系的桥梁

@Slf4j

日志

基于mock的隔离测试和基于dbunit的普通测试

可以分为两种:基于mock的隔离测试和基于dbunit的普通测试。

隔离测试主要通过@Mock和@InjectMocks两个注解来实现模拟与被模拟。

(假的) @Mock:模拟出一个Mock对象,对象是空的,需要指明对象调用什么方法,传入什么参数时,返回什么值

when(tSettleDayPgcbMapper.query(aggregateQueryVo)).thenReturn(list);(配合@Mock使用,造假数据)

@InjectMocks:依赖@Mock对象的类,也即是被测试的类。@Mock出的对象会被注入到@InjectMocks对象中

初始化后 @Mock, @Spy, @InjectMocks等注解时

使用: MockitoAnnotations.initMocks(this)

例子:

@RunWith(SpringJUnit4ClassRunner.class)

@Slf4j

public class TestQueryServiceImplTest {

private TestQueryVo aggregateQueryVo;

//日志信息

private  static String DY_MSG = "";

private final static String DY_MSG1 = "单元测试【TestQueryServiceImplTest】 FdQuery";

/**月结数据查询*/

@Mock

private ElectricityBalanceMapper electricityBalanceMapper;

/**日清汇总查询*/

@Mock

private TSettleDayPgcbMapper tSettleDayPgcbMapper;

//这是依赖dao的service,injectmocks注解表示你要注入的目标

@InjectMocks

private TestQueryServiceImpl service;

static{

DY_MSG = DY_MSG1 ;

}

@Before

public void setUp(){

log.info("{}--start!!!!",DY_MSG);

//模拟返回值

List list = new ArrayList();

//组装数据 start

TSettleDayPgcb vo = new TSettleDayPgcb();

vo.setTradeDate("202008");

list.add(vo);

//end

@SuppressWarnings("resource")

Scanner s = new Scanner(System.in);

String  g = s.next().toString();

aggregateQueryVo = new TestQueryVo();

aggregateQueryVo.setTradeDate(g);

MockitoAnnotations.initMocks(this);

when(tSettleDayPgcbMapper.query(aggregateQueryVo)).thenReturn(list);

}

@Test

public void testFdQuery() {

AggregateResponseVo fdQuery = service.fdQuery(aggregateQueryVo);

Assert.assertNotNull(fdQuery.getColumnList());

Assert.assertNotNull(fdQuery.getLineList());

}

/**

*

* 结束

* @author yangzhenyu

* @date 2020/08/18

*

* */

@After

public void after(){

log.info("{}--end!!!!",DY_MSG);

}

}

本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理

软件测试方法单元测试例子,service单元测试例子相关推荐

  1. python语言案例教程单元测试答案_Python单元测试框架(附例子)

    什么是单元测试? 单元测试在[Python中做是为了在应用程序的开发阶段的早期识别错误时的错误不太经常和修复成本更低. 单元测试是用Python设计的脚本化代码级测试,用于验证功能的小"单元 ...

  2. 软件工程头歌使用进行单元测试

    第一关 任务描述 本关任务:使用Junit对给定的计算器类(Calculator.java)进行单元测试. 相关知识 单元测试的定义 单元测试(Unit testing)是对最小的软件设计单元(模块或 ...

  3. 调试通过的android手机调用网上.net web service的例子

    搭建了android环境,至少有2种方法实现调用webservice 1 用java直接socket编程 2调用封装好的ksoap2-android-assembly-2.4-jar-with-dep ...

  4. android demo示例代码,Android Service demo例子使用详解(示例代码)

    Android Service demo例子使用详解\ 概述 Service 是 Android 的四大组件之一,它主要的作用是后台执行操作,Activity 属于带有 UI 界面跟用户进行交互,而 ...

  5. 各位大神,有没有类似于百度云软件开始时的设置向导的例子呀

    各位大神,有没有类似于百度云软件开始时的设置向导的例子呀,第一次运行软件启动设置向导界面,第二次打开或者以后打开就直接进去到主界面之类的例子,有没有呀,先谢谢了各位

  6. 基于Qt Designer和PyQt5的桌面软件开发--环境搭建和入门例子

      本文介绍了如何使用技术栈PyCharm+Qt Designer+PyQt5来开发桌面软件,从环境搭建.例子演示到对容易混淆概念的解释.文中用到的全部软件+代码下载链接为:https://url39 ...

  7. 软件测试方法大全,49种测试方法,你知道几个?

    β测试_Beta测试 β测试,英文是Beta testing.又称Beta测试,用户验收测试(UAT). β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试.开发者通常不在测试现场,Be ...

  8. 【实用小知识】常用的软件测试方法

    随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强:选择合适的软件测试方法可以让我们事半功倍.以下是一些常用的软件测试方法: β测试_Beta测试 β测试,英文是Beta testing. ...

  9. 总结49种软件测试方法,你知道几个?

    β测试_Beta测试 β测试,英文是Beta testing.又称Beta测试,用户验收测试(UAT). β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试.开发者通常不在测试现场,Be ...

最新文章

  1. 清华计算机系上热搜!近 9 成优秀毕业生放弃留学,前 50 名 41 人留校深造......
  2. Android真机运行错误INSTALL_FAILED_MEDIA_UNAVAILABLE
  3. 去掉微软认证的WINDOWS盗版标志
  4. spring的Aop使用问题
  5. VTK:相互作用之MoveAVertexUnstructuredGrid
  6. Git 内部原理图解——对象、分支以及如何从零开始建仓库
  7. linux 协议错误,在linux客户机上:协议错误,Vagrant无法挂载同步的文件夹_vagrant_开发99编程知识库...
  8. 读者诉苦:Redis 宕机,数据丢了,老板要辞退我
  9. ASP.NET XML高级编程(一、XML技术简介)
  10. 看你能坚持读几本书?!——三十本互联网必看书籍
  11. 一个字等于多少个字节?
  12. module ‘cv2‘ has no attribute ‘SIFT‘
  13. jQuery插件库链接
  14. 解决css修改但是没有反应
  15. c语言1106回文数,Codeforces 1106 简要题解
  16. 怎样使用word模板?两分钟教你搞定!
  17. Android 实现通知栏通知APP版本更新
  18. 什么是计算机病毒,看这里
  19. 计算机音乐制作手册,计算机音乐制作手册
  20. Thymeleaf (三) ---------Thymeleaf 属性

热门文章

  1. pythondocx批量提取目录及内容_使用pythondocx搜索目录中的所有docx文件(批处理)...
  2. 谷歌的android下拉刷新页面,Android SwipeRefreshLayout:谷歌官方SDK包中的下拉刷新
  3. 嵌入式计算机与pc机架构,PC架构与嵌入式架构的录播主机的区分
  4. docker中开启时运行多个不同进程,安装ssh,并在启动docker时与jenkins同时启动运行
  5. idea如何删除java里面工程,Java开发工具IntelliJ IDEA配置项目系列教程(七):卸载模块...
  6. python zipfile_Python 学习入门(16)—— zipfile
  7. 计算机二级日月潭操作步骤,计算机二级考试真题-PPT-文小雨-台湾日月潭介绍
  8. php文件下载教学,php下载文件的代码示例
  9. php中堆和栈的使用
  10. 【AWT编写图形用户界面】GUI编程之AWT讲解(看不懂你来打我)