单元测试

单元测试之Mockito模拟参数传NULL(未指定具体类型)

江枫思渺然 提交于 2019-12-13 07:36:42
方法调用时参数直接传NULL,未指定具体类型,例如: serviceName.methodName(param, null); 如何mock这个方法调用返回值呢?可能我们觉得如下写法是没有问题的,但是实际上不如你所望,返回值是NULL不是expectedResult when(serviceName.methodName(anyString(), anyString())).thenReturn(expectedResult); 改成如下写法即可 when(orgUnitService.sonTreeById(anyString(), isNull() )).thenReturn(expectedResult); 查看ArgumentMatchers.isNull())方法返回值是NULL,那我们把isNull()方法替换成NULL可以吗?是不可以的。 来源: CSDN 作者: 只道当时是寻常 链接: https://blog.csdn.net/hjtlovelife/article/details/103462478

单元测试中模拟mvc测试对象MockMvc

好久不见. 提交于 2019-12-13 02:04:46
import com.hengyu.chapter39.service.impl.MongoDBServiceImpl; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultHandlers; import org

scrum-master个人实践回顾总结

╄→гoц情女王★ 提交于 2019-12-13 01:57:11
个人回顾总结 一、开课提出问题 第一次博客地址: https://www.cnblogs.com/Slow-Walker/p/11513179.html 二、问题回答 2.1问题1:针对单元测试 怎么保持单元测试的孤立性呢,假如测试方法中的参数过多就会造成在被测试方法业务逻辑复杂,而且会频繁调用其它接口,他的优缺点具体有哪些呢? 课程学习回答:通过本次的课程的学习以及后面的单元测试项目实践、以及最后的团队项目实践都用到了单元测试,也较为深刻的掌握了单元测试的方法以及他的测试,也深刻的体会到了他的优点缺点;首先是采用自顶向下的单元测试策略,解决单元测试孤立性问题,实践的步骤如下: (1)以单元组件的层次及调用关系为依据,从最顶层开始,把被顶层调用的单元做成桩模块。 (2)对第二层单元组件进行测试,如果第二层单元组件又被其上层调用,以上层已测试的单元代码为依据开发驱动模块来测试第二层单元组件。同时,如果有第二层单元组件调用的下一层单元组件,则还需要依据其下一层单元组件开发桩,桩的数量可以有多个。 (3)依此类推,直到全部单元组件测试结束。 项目中体会到它真正具备的优点个人总结如下: 因为单元测试是直接或间接地以单元组件的层次及调用关系为依据,所以可以在集成测试之前为系统提供早期的集成途径。由于详细设计一般都是自顶向下进行设计的,这样自顶向下的单元测试策略在顺序上同详细设计一致

前端进阶---单元测试入门

老子叫甜甜 提交于 2019-12-12 04:08:06
什么是单元测试? 对软件中最小可测单元进行测试(如:一个方法function) 引入单元测试的原因?(一般是大的项目时) - 分模块开发,方便的定位到哪个单元出了问题 - 保证代码质量 - 驱动开发(测试驱动开发) TDD: 测试驱动开发,从需求角度看,即我需要结果是什么,如果不是就是错误的。(需求分析-》编写单元测试-》编写代码使单元测试通过-》重构) BDD: 行为驱动开发,从具体功能角度出发看,即结果应该是什么,如果不是什么就出错。(从业务角度定义目标-》找到实现目标的方法-》编写单元测试-》实现行为-》检查产品) 先写测试用例,再开发满足测试用例 测试的原则 及时修改和维护 Code review:代码审查 偶尔代码审核 同步 异步(借助工具) 只测单一的点 尽量贴近真实 避免测试中逻辑过于复杂 单元测试详解 单元测试的核心内容 测试框架 测试运行的基础 框架 Jest :基于jasmine,对react友好 jasmine :自带assert,mock Mocha :全面适合node和浏览器两个端(适合自定义高的) Qunit 出自是Query 断言库 自己对自己的断言,判断结果 工具: Chai -支持所有风格【常用】, Assert -node环境直接使用, Should,expect -用得少 Mock库 用于屏蔽其他方法的数据影响 工具: sinon Test

spring-boot-starter-test单元测试引入SpringRunner失败问题

戏子无情 提交于 2019-12-11 15:35:17
找到pom中的spring-boot-starter-test,删掉scope作用域,然后项目右键Maven》update projects。 问题解决。 拓展: 在新版本的Pom中,<dependency>新增了<scope>,主要用来管理依赖部署,有如下5个值: compile:compile是默认的范围;如果没有提供一个范围,那该依赖的范围就是编译范围。编译范围依赖在所有的classpath 中可用,同时它们也会被打包。 provided:类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。 runtime:runtime 依赖在运行和测试系统的时候需要,但在编译的时候不需要。 test:test范围依赖 在一般的编译和运行时都不需要,它们只有在测试编译和测试运行阶段可用。 system:类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。 ———————————————— 原文链接:https://blog.csdn.net/u013367319/article/details/91483358 来源: https://www.cnblogs.com/heyboom/p/12022750.html

软件测试面试五十道题

那年仲夏 提交于 2019-12-10 20:19:36
目录 1. 什么是软件测试?...................................................................................................................................... 3 2. 软件测试的目的?................................................................................................................................... 3 3. 软件测试的原则?................................................................................................................................... 3 4. 请分别阐述目前白盒测试和黑盒测试主要的测试用例设计方法?.................................................. 4 5. 什么是测试用例,什么是测试脚本,两者的关系是什么?...............................................

C#单元测试

三世轮回 提交于 2019-12-10 19:11:15
什么叫单元测试(unit testing)? 是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函 数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中 要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。 步骤 1、创建单元测试项目 2、 引入待测项目(我的待测项目是MyWPFProject) 3、我的项目中有个类 叫MyClass,里面有个方法是GetSum 4、下面是测试用例当中的测试方法 实例化待测试的类,然后调用里面的方法,用Assert.AreEqual来确定是否返回预期结果,如果返回的不是3,那么此处会提示。 5、验证单元测试是否正确的方式,在测试资源管理器视图中,可以通过右键单元测试项目->运行所选测试;也可以在代码中右键-运行测试或者右键-调试测试 6、查看代码覆盖率 然后再代码覆盖率结果中查看 来源: https://www.cnblogs.com/cuigzh/p/12018519.html

iOS-单元测试

霸气de小男生 提交于 2019-12-10 18:29:57
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前言 单元测试对于任何的应用或者系统都是必要的,只是我们在开发的时候,大多数都忽略它的重要性与必要性;单元测试可以尽可能的保证项目的质量以及业务流程的完整性,减少bug的产生。 本例使用XCTest,xcode自带测试框架; (一)测试异步(AFNetworking异步请求); (1)AFNetworking异步请求后台api,返回数据; #import <Foundation/Foundation.h> @interface TestService : NSObject + (void)testPostWy:(void (^)(id responseObject))sucess failure:(void (^)(id error))failure; @end #import "TestService.h" #import "AFApiDotNet.h" @implementation TestService + (void)testPostWy:(void (^)(id))sucess failure:(void (^)(id))failure { AFHTTPSessionManager *manager = [AFApiDotNet httpClient]; [manager GET:@"http:/

IOS --Xcode6单元测试

风格不统一 提交于 2019-12-10 18:23:49
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 单元测试,又称模块测试。是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。面向过程编程,一个单元就是单个程序;面向对象编程,程序最小单位是方法。 XCTest是Xcode内置的测试框架。同时,Xcode6新增XCTestExpectation和性能测试。 xcode6创建一个新的工程后,项目会自动配置两个group:一个是“工程名称”group;另一个是“工程名称Test”group。它们分别对应两个target,一个是运行的target,另一个是测试的target。用户使用Command+R编译运行的target,使用Command+U编译测试的target。 在测试的group中,有一个工程名称test.m文件,这个文件里面包含一个XCTestCase类,里面有四个方法:setUp、tearDown、testExample、testPerformanceExample。 XCTestCase xcode的单元测试包含在 XCTestCase的子类中,组织测试的时候尽量需要考虑实际的应用操作流程。 setUp & tearDown setUp方法在 XCTestCase的测试方法调用之前调用。当全部测试结束之后调用 tearDown方法。 - (void)setUp { [super setUp

Android单元测试

孤者浪人 提交于 2019-12-10 17:00:39
我的理解: 什么是单元测试? 举个例子,假如电视机出厂前需要测试,电视机由很多元件组成,那么在生产每一个元件的时候会对每个元件分别进行测试,大大减少了出现故障的机率。在Android中,一个类由很多方法组成,我们就对每个方法进行测试。习惯做单元测试,不仅仅可以避免出现不必要的bug,还能锻炼对逻辑方法的抽取能力,提升代码质量。 单元测试不是集成测试,只是测试一个方法。举个例子,比如登录流程,从用户输入,到点击按钮,到请求服务器,再到更新UI,整套流程下来叫做集成测试,并不是单元测试。 下面的例子只是演示了测试有返回值的方法,还有没有返回值的方法,涉及到mock的概念。(继续学习) 怎么测试? 假如有个方法需要测试 public class Calculator { public int add ( int one , int another ) { //为了简单起见,暂不考虑溢出等情况。 return one + another ; } } 测试该方法 public class CalculatorTest { public void testAdd ( ) throws Exception { Calculator calculator = new Calculator ( ) ; int sum = calculator . add ( 1 , 2 ) ; Assert .