四十二、微服务之-Mock 与 Stub测试

本文介绍了Mock和Stub在软件开发中的概念,它们分别是用于模拟对象行为的Mock,提供固定行为的Stub。通过实例展示了如何在测试中使用Mock和Stub替换外部依赖,如Calculator类中的MathUtil,进行更精确的单元测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

Stub

一个有助于运行测试的虚拟对象。 在某些可以硬编码的条件下提供固定的行为。 从未测试stub的所有其他行为。
例如,对于空栈,你可以创建一个对于 empty() 方法只返回 true 的 stub。因此这并不关心栈中是否存在元素。

Mock模拟

一个虚拟对象,其中最初设置了某些属性。 此对象的行为取决于设置的属性。 也可以测试对象的行为。
例如,对于 Customer对象,你可以通过设置姓名和年龄来模拟它。你可以将年龄设置为 12,然后测试isAdult()方法,该方法将在大于 18 岁时返回 true。因此你的 Mock Customer 对象适用于指定的条件。

在软件开发中,Mock和Stub都是测试中常用的概念。

Mock是一个用于模拟对象行为、产生特定响应的对象。它通常用于测试中,用来替代真实的对象以便进行更加可控的测试。Mock对象可以预先定义特定的输入和对应的输出,在测试过程中将会返回这些预定义的输出数据。Mock还可以用来验证某个特定方法是否被调用、被调用的次数以及传入的参数。

Stub是一个用于替代真实对象的占位对象。与Mock不同的是,Stub对象并不关心特定的输入和对应的输出,它只是提供一些固定的返回值。Stub主要用于测试中的边界情况或者临时占位,以便在测试中能够继续进行下去。

项目案例

Mock和Stub是测试中常用的两种技术,用于模拟和替代外部依赖以进行单元测试。Mock用于创建一个虚拟的对象,用于模拟实际对象的行为,而Stub用于替代实际对象,提供一个预定义的行为。下面是一个关于Mock和Stub的示例和代码。

假设我们有一个名为Calculator的类,用于执行基本的数学计算。Calculator类依赖于一个名为MathUtil的工具类,用于执行实际的数学计算。

class MathUtil:
    def add(self, a, b):
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贺公子之数据科学与艺术

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值