Mockito使用方法(Kotlin)

Mockito使用方法(Kotlin)

一、为什么要使用Mockito

1.实际案例

1.1 遇到的问题

对于经常维护的项目,经常遇到一个实际问题:需求不停改变,导致架构经常需要修改某些概念的定义。

对于某些十分基础又十分常用的概念,常常牵一发而动全身。

此时,”重构-测试”循环将会消耗比较多的费用。

1.2 解决方法1

可以通过领域驱动开发,在设计架构之前和相关领域的专家充分沟通,从而从一开始就得到准确的定义。

同时,在开发过程中对于之后有可能增加新功能的模块,充分增加其可拓展性。

1.2 解决方法2

通过编写高质量代码,保证单一功能由单一函数负责,从而减少增加新功能时的工作量。

1.3 根本原因

不论架构怎样设计,对于一个经常维护、更新的项目,其必然会在某些时刻遇到修改基本定义的情况。

而这些基本定义的大量引用,对于一名普通开发者来说,不一定能完全照顾到。

即使照顾到了,也不能保证下一次也同样不出问题。

1.4 解决方法3

使用自动化测试,在增加代码后用计算机代替人进行功能测试,从而大大提高测试效率。

在引入单元测试后,不仅能测试出“是否有问题”,更能高效找到错误出现的位置,效率显著高于传统的控制台输出调试方法。

2.行为驱动开发

2.1 概览

BDD:行为驱动开发

第一步:编写一个失败的”客户验收测试”,从客户视角描述系统。

第二步:写系统代码,直到验收测试通过。

2.2 缺点

代码量大,前期成本高。

即该方法不适合一次性写完,之后几乎不维护的小型程序。

2.3 优点

后期开发效率大大提高。

因此,该方法适用于时常维护,使用时间很长的大型程序。

二、部署Mockito

1.gradle部署

build.gradle.kts

dependencies {
    testImplementation("org.mockito:mockito-core:4.3.1")
    testImplementation("org.junit.jupiter:junit-jupiter-api:5.8.2")
    testImplementation("org.mockito:mockito-inline:4.3.1")
    testImplementation(fileTree("testLibs"))
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.2")
}
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Mockito使用方法(Kotlin)