gpt4 book ai didi

mocking - 为什么要麻烦模拟存储库?

转载 作者:行者123 更新时间:2023-12-05 01:24:01 26 4
gpt4 key购买 nike

这可能是一个非常蹩脚的问题,但我需要问。为什么要模拟一个存储库?

如果您正在创建具有硬编码值的对象,然后使用 Moq 从接口(interface)上的方法调用中将它们作为值返回(即没有实现)您到底在测试什么?

最佳答案

就像其他答案所说的那样,您这样做是为了测试客户端,而不是存储库(或数据库,或外部服务或其他),但我们这样做有两个关键原因:

  • 为了确保可重复性并创建异常(exception)情况 :您希望能够知道您正在测试的内容不会随着时间的推移而退化。如果您的存储库正在更改,您无法确定现在有效的方法以前是否也有效。此外,您可以识别当前可能不会出现在存储库中的异常情况(可能是没有社会安全号码的用户,或者类似的模糊但可能的情况)并将它们包含在您的测试中,从而确保 future 的兼容性。
  • 删除依赖项 :您想让测试尽可能简单和快速。测试依赖的每一个外部资源都是常规测试的另一个障碍。如果您模拟您的存储库,那么即使存储库不存在或丢失,也可以针对您的客户端运行测试。
    例如,如果一个程序连接到一个“真实”数据库,他们的测试套件可能会使用本地(甚至在内存中)SQLite 数据库来测试他们的 DB 行为,这样运行测试的人就不需要配置或连接到实际数据库,发生的任何更改或错误都不会影响共享数据库资源。
  • 关于mocking - 为什么要麻烦模拟存储库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11652223/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com