灌篮少年 发表于 2024-8-10 14:03:39

那年追过的开发者测试工具

交付进度紧张,为什么还要花费精力写单元测试代码,如下是之前的条记。

[*]写单元测试代码有什么好处
[*]为什么程序员讨厌写单元测试代码
工欲善其事,必先利其器。使用Java语言交付项目时,需要掌握单元测试框架和Mock工具的使用。
如下是当年交付项目过程中,使用过的测试框架和工具,可供参考。
JUnit

测试用例的开发框架,从JUnit3不停到JUnit4。
JUnit5发布后,岗位的变革,在项目里写代码的机会不多,因此没有太多使用经验。

[*]官网
[*]社区主页A programmer-oriented testing framework for Java.

[*]junit5代码仓库The 5th major version of the programmer-friendly testing framework for Java and the JVM.

[*]JUnit5使用指导
[*]junit4代码仓库
[*]Getting Started for JUnit4
[*]JUnit4 wiki
使用JUnit5时,修改项目的pom.xml,增加如下配置:
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.10.3</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-engine</artifactId>
    <version>5.10.3</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter</artifactId>
    <version>5.10.3</version>
    <scope>test</scope>
</dependency>使用JUnit4时,修改项目的pom.xml,增加如下配置:
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
    <scope>test</scope>
</dependency>参考资料


[*]【软件测试】单元测试工具---Junit详解
[*]JUnit4 / JUnit 5 全面详解【单元测试、Maven】
[*]【软件测试】JUnit详解
[*]Java Junit单元测试(入门必看篇)
[*]【软件测试】JUnit 单元测试 基础学习教程
[*]主动化测试Junit
[*]Junit 单元测试(详解)
EasyMock

当年作为骨干加入祖传项目的交付,使用EasyMock配合PowerMock,写了很多单元测试,对于稳固产品质量,改善生活质量,非常有资助。

[*]官网
[*]代码仓库
EasyMock, makes mocking easier since 2001.
EasyMock is a Java library that provides an easy way to use Mock Objects in unit testing.

[*]Getting Started
[*]使用指导
修改项目的pom.xml,增加如下配置:
<dependency>
    <groupId>org.easymock</groupId>
    <artifactId>easymock</artifactId>
    <version>5.4.0</version>
    <scope>test</scope>
</dependency>参考资料


[*]高效单元测试——EasyMock技术与应用
[*]EasyMock详解
[*]EasyMock教程
[*]开源 API 工具的 MOCK 功能真的好用么?
PowerMock

对于老项目来说,静态类满天飞,PowerMock非常有用。
当年作为骨干加入祖传项目的交付,使用EasyMock配合PowerMock,写了很多单元测试,对于稳固产品质量,改善生活质量,非常有资助。
检查提交记录,发现最近的提交已在2022年2月24日。
除非有新的开发者加入,否则本项目短期内不会有新的进展。

[*]官网
[*]代码仓库
PowerMock is a Java framework that allows you to unit test code normally regarded as untestable.

[*]Is this project still alive?
I don't personally have time to maintain PowerMock anymore, and from what I understand from @thekingn0thing, the same is true for him. Is anyone else willing to move it forward? I'd be happy to give access etc if anyone is willing to do so.
依据帖子中作者@johanhaleby的上述答复,短期内大概不会重启项目的开发工作。
修改项目的pom.xml,增加如下配置:
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-module-junit4</artifactId>
    <version>2.0.9</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-core</artifactId>
    <version>2.0.9</version>
    <scope>test</scope>
</dependency>官方文档


[*]Getting Started
[*]Downloads
[*]Motivation
[*]Javadoc

[*]EasyMock API extension (PowerMock class)
[*]Mockito API extension (PowerMockito class)
[*]Mockito2 API extension (PowerMockito class)
[*]PowerMock Reflect (Whitebox class)

[*]Common

[*]PowerMock Configuration
[*]Bypass Encapsulation
[*]Suppress Unwanted Behavior
[*]Test Listeners
[*]Mock Policies
[*]Mock system classes

[*]EasyMock
[*]Mockito
[*]TestNG
[*]Delegate to another JUnit Runner
[*]Bootstrap using a JUnit Rule
[*]Bootstrap using a Java Agent
[*]OSGi
[*]Release Notes
[*]FAQ
参考资料


[*]PowerMock注解PowerMockIgnore的使用方法
[*]PowerMock简介及常见注解解释
[*]PowerMock入门:Java单元测试的终极武器
[*]单元测试——PowerMock总结
[*]PowerMock(一):PowerMock的基本使用
JMockit

刚入行的时候,隔壁项目组大规模应用本工具交付单元测试和集成测试代码,其时作为新手,除了哇塞,也不知道说啥好。

[*]官方文档
修改项目的pom.xml,增加如下配置:
<dependency>
    <groupId>org.jmockit</groupId>
    <artifactId>jmockit</artifactId>
    <version>1.49</version>
    <scope>test</scope>
</dependency>参考资料


[*]不会测试的程序员不是好程序员(一文让你掌握JMockit的使用)
[*]JAVA单元测试——JMockit教程
[*]Jmockit总结
[*]JMockit学习条记
Mockito

曾经在一个项目中使用过,不外这个项目的生命周期比较短,以是积聚不多。

[*]官网
[*]代码仓库
Most popular Mocking framework for unit tests written in Java.

[*]org.mockito.Mockito
修改项目的pom.xml,增加如下配置:
<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>5.12.0</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-junit-jupiter</artifactId>
    <version>5.12.0</version>
    <scope>test</scope>
</dependency>参考资料


[*]超具体 springboot 整合 Mock 进行单元测试!本文带你搞清楚!
[*]Mockito使用详解
[*]Mockito 简介
[*]Mockito和PowerMock用法
[*]一文教会你mock(Mockito和PowerMock双剑合璧)
[*]Mockito & PowerMock详解
[*]Mockito和PowerMock用法
[*]Mockito和PowerMockito的使用
[*]Mockito与PowerMock的使用基础教程
Cucumber

场景化测试、数据驱动测试,之前加入网络控制器的业务时,广泛使用了本工具来开发单元测试和集成测试代码,非常方便。

[*]官网
[*]社区主页
Cucumber is a tool for running automated acceptance tests, written in plain language.

[*]代码仓库
Cucumber for the JVM.

[*]官方文档
修改项目的pom.xml,增加如下配置:
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>7.18.1</version>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>7.18.1</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-core</artifactId>
    <version>7.18.1</version>
</dependency>参考资料


[*]Cucumber结合junit5测试
[*]记Cucumber行为驱动测试的简单配置与使用方式
[*]Cucumber - junit 支持多线程
[*]【Cucumber系列】Junit Test Runner和CucumberOptions

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 那年追过的开发者测试工具