oscar999
毕业于中国科学技术大学,数据库四级、通过系统设计师、系统分析师、信息系统项目管理师资格认证。国际项目管理(IPMP)C级认证。超过15年软件项目开发和管理经验,精通Java Web相关技术(包括Spring系列、Ext JS等),对PHP、Python、C#、Vue等有涉猎。
展开
-
单元测试原则之——不要模拟值对象 (1)
假设我们有一个服务类 OrderService,它接收一个 Order 对象(值对象)并计算订单的总价。:模拟有行为的依赖(如服务、仓库、外部 API 客户端),而不是值对象。:值对象的逻辑简单,直接实例化即可,模拟可能掩盖潜在的错误。● 模拟数据库访问对象(如 UserRepository)。:模拟值对象需要额外的代码,增加了测试的复杂性。直接使用值对象的实际实例,避免了模拟的复杂性。● 值对象本身没有行为,直接实例化即可。:直接实例化值对象,而不是模拟它们。:值对象没有行为,直接实例化即可。原创 2025-04-02 23:12:38 · 253 阅读 · 0 评论 -
单元测试原则之——不要模拟不属于你的类型
这是因为外部库或框架的类型(如第三方依赖)可能会在未来的版本中发生变化,而你的模拟可能无法反映这些变化,从而导致测试失效。以下是一个基于Java Mockito 的示例,展示如何避免模拟不属于你的类型,以及如何使用抽象或接口来隔离外部依赖。:通过定义接口或抽象层,将外部依赖的实现细节隐藏在适配器类中,测试代码只依赖于接口。:直接模拟第三方库或框架的类型会增加测试与实现的耦合,降低测试的可维护性。● 模拟第三方类型增加了测试与实现的耦合,降低了测试的可维护性。:模拟接口或抽象层,而不是具体的第三方类型。原创 2025-04-02 22:58:00 · 120 阅读 · 0 评论 -
单元测试中的测试替身(基于Java的示例)
在单元测试中听到比较多的词就是Mock, 即模拟,也就是模拟一个虚拟的对象替代原来的对象,以便单元测试可以专注在所测试的单元。但其实单元测试中的模拟是有多种类型的,这些虚拟和模拟统称是测试替身。测试替身(Test Doubles)用于,使测试专注于目标单元的逻辑。原创 2025-03-31 22:53:41 · 312 阅读 · 0 评论 -
说清楚单元测试
单元测试是软件开发中一种重要的测试方法,其核心目的是验证代码的最小可执行单元(通常是函数、方法或类)的行为是否符合预期。这些示例展示了如何在不同编程语言中编写和运行单元测试。每个示例都测试了一个简单的加法函数。首先,确保已经安装了 Jest。Python (使用 unittest)JavaScript (使用 Jest)借由本篇,来全面看一看单元测试。Java (使用 JUnit).NET (使用 NUnit)然后,创建一个测试文件,例如。原创 2025-03-31 22:18:03 · 275 阅读 · 0 评论 -
自动化测试工具-Playwright介绍和快速实例
PlayWright 自动化测试工具:支持在Windows、Linux和macOS上运行测试,无论是本地环境、CI/CD流水线,还是无头/有头模式。:捕获测试执行全量信息(包括屏幕录像、实时DOM快照、操作回放、测试源码等),深度复盘失败原因。运行之后会打开一个在线的报表,因为只安装了Chrome 的内核,所以其他4个测试是失败的。:遵循现代浏览器多进程架构,测试在独立进程中运行,彻底突破进程内测试框架的限制。原创 2025-03-19 23:02:51 · 87 阅读 · 0 评论 -
自动化测试工具-Playwright介绍和快速实例
PlayWright 自动化测试工具:支持在Windows、Linux和macOS上运行测试,无论是本地环境、CI/CD流水线,还是无头/有头模式。:捕获测试执行全量信息(包括屏幕录像、实时DOM快照、操作回放、测试源码等),深度复盘失败原因。运行之后会打开一个在线的报表,因为只安装了Chrome 的内核,所以其他4个测试是失败的。:遵循现代浏览器多进程架构,测试在独立进程中运行,彻底突破进程内测试框架的限制。原创 2025-03-18 22:31:57 · 436 阅读 · 0 评论 -
一个不错的API测试框架——Karate
Karate 作为英文单词翻译过来的意思是:空手道,不过这里的Karate 和日本无关,和李小龙也没有关系, 而是一个API的测试框架。Karate框架遵循Cucumber风格的编程方式,这种方式遵循行为驱动开发(BDD)的方法。非编程人员也能轻松理解其语法。这个框架是唯一一个将API自动化测试和性能测试结合成一个独立工具的API测试工具。Karate是一个BDD(行为驱动开发)测试框架,而不是TDD(测试驱动开发)。它被设计为对非程序员友好。原创 2025-02-24 22:40:07 · 128 阅读 · 0 评论 -
[API测试] Karate 之独立运行方式
在这一篇中介绍了如何在Maven项目中,如何结合JUnit 运行 Karate的API测试, 如果是专职的QA人员来测试, 对Java语言或者Maven完全不熟悉的话要怎么来运行Karate的测试呢?答案就是使用Karate的独立运行方式。原创 2025-01-02 22:33:42 · 146 阅读 · 0 评论 -
Python BDD 框架比较之 pytest-bdd vs behave
这两个框架都有其优点和特性,选择哪一个主要取决于特定需求。如果你已经在使用pytest,并且希望以最少的学习曲线使用 BDD,那么pytest-bdd可能是更好的选择。另一方面,如果你希望编写的测试代码更接近自然语言,并且适合非技术团队成员阅读和修改,那么behave可能是更好的选择。原创 2023-11-24 07:11:08 · 1474 阅读 · 0 评论 -
在VS Code中进行Java的单元测试
在VS Code中可以使用 Test Runner for Java扩展进行Java的测试执行和调试。原创 2024-05-28 22:38:08 · 3601 阅读 · 2 评论 -
JMeter实战之——模拟登录
本篇介绍使用JMeter 如何对需要登录的站点进行压力测试。原创 2024-10-23 22:34:42 · 2091 阅读 · 0 评论 -
Java 中使用Mockito 模拟对象的单元测试的快速示例
Mockito是一个流行的Java模拟框架,它允许你在单元测试中创建和配置模拟对象,以便在测试过程中替换那些不容易构造或获取的对象。Mockito可以与JUnit无缝集成,下面的示例演示 Mockito + JUnit实现模拟对象的单元测试。原创 2024-11-10 20:13:02 · 775 阅读 · 0 评论 -
Java 单元测试模拟框架-Mockito 的介绍
Mockito 允许开发人员创建和管理模拟对象(mock objects),以便在测试过程中替换那些不容易构造或获取的对象。Mockito 是一个用于单元测试的模拟框架,基于它可以使用简洁易用的API编写出色的测试。Mockito当前的最新版本是 5.14.2,在pom.xml中导入之后就可以开始使用了。创建Mock对象, 验证对象的方法是否被调用了。Mockito的使用步骤。模拟方法执行返回的结果。原创 2024-12-01 20:51:46 · 1914 阅读 · 0 评论 -
Karate 介绍与快速示例(API测试自动化、模拟、性能测试与UI自动化工具)
Karate是一个将API测试自动化、模拟、性能测试甚至UI自动化结合到一个统一框架中的开源工具。Karate 是用Java语言编写, 可以在Java 项目项目中运行API的测试,对于不熟悉Java的团队,Karate提供了一个跨平台的独立可执行文件。不必编译代码。只需以简单易读的语法编写测试——为HTTP、JSON、GraphQL和XML精心设计。可以在同一测试脚本中混合使用API和UI测试自动化。原创 2025-01-01 22:12:19 · 612 阅读 · 0 评论