当前位置: 首页 > 工具软件 > Stub_On_Web > 使用案例 >

mock 和 stub

乔鸿骞
2023-12-01

1. mock 和 stub

  • mock: 是模拟的意思, 指的是在测试包中创建一个结构体, 满足某个外部依赖的接口 interface{}
  • stub: 是桩的意思, 指的是在测试包中创建一个模拟方法, 用于替换生成代码中的方法。

区别:

  1. mock 和 stub 都是采用替换的方式来实现, 被测试的函数中的依赖关系, 不过 mock 采用的是接口替换的方式, stub 采用的是函数替代的方式。
  2. mock 对代码没有倾入性, sub 倾入性比较强在实现功能函数的时候, 就需要为测试设置一些回调函数, 也就是这里所说的桩。
  3. 对于控制被替代的方法来讲, mock 如果想支持不同的输出, 就需要提前实现不同分支的代码, 甚至需要定义不同的 mock 结构来实现, 这样的 mock 代码会变成一个支持所有逻辑分支的一个最大集合, mock 代码复杂性会变高; stub 却能很好的控制桩函数的不同分支, 因为 stub 替换的是函数, 那么只要需要再用带这种输出的时候, 定义一个函数即可, 而这个函数甚至可以是匿名函数。
 类似资料: