gpt4 book ai didi

python - 在 Python 中,什么是在单元测试期间禁用某些代码的好模式?

转载 作者:太空狗 更新时间:2023-10-29 18:27:04 25 4
gpt4 key购买 nike

总的来说,我希望禁用尽可能少的代码,并且我希望它是明确的:我不希望被测试的代码决定它是否是测试,我希望测试告诉该代码“嘿,顺便说一句,我正在运行一个单元测试,你能不能不要调用 solr,相反,你能不能把你要发送给 solr 的东西留在这个地方,这样我就可以检查它了”。我有我的想法,但我不喜欢它们中的任何一个,我希望有一个很好的 pythonic 方法来做到这一点。

最佳答案

您可以使用 Mock objects拦截您不想执行的方法调用。例如。您有一些类 A,其中您不希望在测试期间调用方法 no()

class A:
def do(self):
print('do')
def no(self):
print('no')

模拟对象可以从 A 继承并覆盖 no() 以不执行任何操作。

class MockA(A):
def no(self):
pass

然后您将在测试代码中创建 MockA 对象而不是 A。另一种进行模拟的方法是让 AMockA 实现一个公共(public)接口(interface),比如 InterfaceA

有大量的模拟框架可用。参见 StackOverflow: Python mocking frameworks .

具体参见:Google's Python mocking framework .

关于python - 在 Python 中,什么是在单元测试期间禁用某些代码的好模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2320210/

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