
单元测试
文章平均质量分 71
Hoboyz
Something harder
展开
-
【单元测试】做更好的单元测试:关于单测你必须知道的技巧与原则
做更好的单元测试:关于单测你必须知道的技巧与原则最近因工作需要不得不对单元测试中的Mockito2和Powermock框架的一些新特性进行研究:比如Mockito2和Powermock可以伪造静态方法、final类甚至是构造函数的调用,但是研究一段后发现,这些功能其实在小编本来就很熟悉的Jmockit框架中就能实现,而且不用像mockito一样需要特殊的语法和额外的样板代码,看似掌握了一些所谓...原创 2018-05-22 10:12:26 · 1757 阅读 · 0 评论 -
【单元测试】Mockito与PowerMock介绍
什么是Mock?在单元测试中,我们往往想去独立地去测一个类中的某个方法,但是这个类可不是独立的,它会去调用一些其它类的方法和service,这也就导致了以下两个问题:外部服务可能无法在单元测试的环境中正常工作,因为它们可能需要访问数据库或者使用一些其它的外部系统。我们的测试关注点在于这个类的实现上,外部类的一些行为可能会影响到我们对本类的测试,那也就失去了我们进行单测的意义。为了...原创 2018-05-22 10:15:05 · 1038 阅读 · 0 评论 -
【单元测试】使用PowerMock框架进行Java静态方法的单元测试
简介一般来说,Java中的静态方法无法用传统的Jmock进行单测,这也就给研发人员和测试人员造成了一定的困扰。本文介绍一种使用PowerMock执行静态方法单元测试的手段,其实网上也有使用如Mockito的方法,大家可以自行搜索。静态方法的测试手段其实从一个测试人员的角度看,静态方法的测试并不比非静态方法难,比如下面这个例子:public final class Strin...原创 2018-05-22 10:34:52 · 3486 阅读 · 0 评论 -
【单元测试】单测编写技巧与原则
最近因工作需要不得不对单元测试中的Mockito2和Powermock框架的一些新特性进行研究:比如Mockito2和Powermock可以伪造静态方法、final类甚至是构造函数的调用,但是研究一段后发现,这些功能其实在我本来就很熟悉的Jmockit框架中就能实现,而且不用像mockito一样需要特殊的语法和额外的样板代码,看似掌握了一些所谓“高大上”的用法,实际对工作来说没有任何收益。因此今天...原创 2018-05-22 10:35:27 · 1242 阅读 · 0 评论 -
【单元测试】JUnit断言检测控制台输出的方法
背景在进行单元测试时,被测试的业务代码没有明确的return类型,但是一般的执行记录都会写入logger中,并在控制台输出。普通的断言无法覆盖这种场景,修改代码只能短时解决问题,每次更新都需要再次改代码。因此需要一种方法能够检测控制台的输出,并对输出进行断言。解决方案一把标准输出定向至ByteArrayOutputStream中去对其内容进行断言因为其内容较多,使用asser...原创 2018-05-22 10:37:05 · 9889 阅读 · 1 评论 -
【单元测试】JUnit-addons断言包
JUnit-addons断言包背景对于单元测试,org.junit.Assert类提供了很好地断言支持,但对于一些特定情况(比如JavaBean中的集合或属性)就无能为力了。在进行分期风控规则框架测试时,需要对不同的数据种类(列表、对象、变量、字符串等)进行比较,在调研之后,发现有JUnit-addons这个断言包可以支持。介绍JUnit-addons在junitx.fra...原创 2018-05-23 10:38:01 · 325 阅读 · 0 评论 -
利用Docker和JUnit进行集成测试
利用Docker和JUnit进行集成测试1.前言 “集成测试的目的是验证各组件之间的通信路径与交互以检测接口上的缺陷” ——敏捷开发创始人Martin Fowler随着云端服务的普及,微服务架构开始应用于越来越多的项目上,比如项目中的一些服务会“外包”出去,如PostgreSQL, Apache Kafka, etcd等。这就需要本地服务与外部组件进行交互,如果...原创 2018-05-23 10:43:38 · 1789 阅读 · 0 评论 -
通过lambda和mockito answer提升单元测试效率
背景在测试Spring RestTemplate的时候,为了规避上下文带来的影响且保证单元测试的效率与独立性,使用mock技术是常用的手法。但是实际项目中,如果要从RestTemplate转为其他框架的时候,就需要修改所有的单元测试代码,也就是说,目前的代码还是依赖于框架的,还是不够独立:public class SpringCloudRefactoringTest { pr...原创 2018-07-06 14:32:54 · 1798 阅读 · 0 评论