在单元测试中模拟依赖
Mocking dependencies in unit test
我的代码结构如下:
class A 依赖于 class B,它获取另一个 class C 的实例,后者又包含一个列表 l。
我需要对 A 中获取列表 l 并更新它的方法进行单元测试。
我不知道该怎么办?我应该模拟一个 List 并将其放入 C 的模拟中,然后验证其更新。我不确定这是否可能。
您想在 class A 中测试方法 M。方法 M 对 class B 做了棘手的事情,以获得修改后的 List<E>
I。
根据您的 class 设计,您可以按如下方式进行:
- 创建一个 class B 的模拟,以便用于“掌握 I”的方法 returns 一些有趣的真实列表 I
- 将这个 mock 注入你的 class-under-test A
- 调用你的method-under-test M
- 断言对列表的更改符合预期。
如果在列表中创建 class E
的元素很复杂,您可以模拟这些元素,但没有必要模拟列表本身。
我的代码结构如下:
class A 依赖于 class B,它获取另一个 class C 的实例,后者又包含一个列表 l。
我需要对 A 中获取列表 l 并更新它的方法进行单元测试。
我不知道该怎么办?我应该模拟一个 List 并将其放入 C 的模拟中,然后验证其更新。我不确定这是否可能。
您想在 class A 中测试方法 M。方法 M 对 class B 做了棘手的事情,以获得修改后的 List<E>
I。
根据您的 class 设计,您可以按如下方式进行:
- 创建一个 class B 的模拟,以便用于“掌握 I”的方法 returns 一些有趣的真实列表 I
- 将这个 mock 注入你的 class-under-test A
- 调用你的method-under-test M
- 断言对列表的更改符合预期。
如果在列表中创建 class E
的元素很复杂,您可以模拟这些元素,但没有必要模拟列表本身。