gpt4 book ai didi

python - 用测试中的模拟替换客户端库?

转载 作者:太空宇宙 更新时间:2023-11-03 19:34:23 25 4
gpt4 key购买 nike

有没有办法用单元测试中的模拟对象替换客户端库(与远程服务器通信)?

这是一个图表来解释我正在尝试做的事情

    +---------------+
| tests |----{ mock }
+---------------+ |
| |
v |
+---------------+ |
| model | |
+---------------+ |
| |
v |
+---------------+ |
| client-module |<--{replaces}
+---------------+
^
:
:
v
+---------------+
| service |
+---------------+

由于测试导入模型,从而导入客户端模块,因此似乎没有办法将模拟应用到模型的内部。

最佳答案

如果 model.py 执行了

import client_module

并且在导入时不使用它的任何功能,您可以这样做

import model

...

model.client_module = MyMockModule()

其中MyMockModule为真正的client_module提供的内容返回合适的模拟。我还没有展示 setUp/tearDown 的东西来解决这个问题,但希望你能明白,

如果 model 确实在导入时使用 client_module 中的内容,则需要替换 sys.modules['client_module '] 在导入模型之前使用模拟模块。

关于python - 用测试中的模拟替换客户端库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4267007/

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