gpt4 book ai didi

python - 使用 Python 模拟监视对现有对象的调用

转载 作者:IT老高 更新时间:2023-10-28 22:22:20 24 4
gpt4 key购买 nike

我正在使用 Python 模拟模块进行测试。我想用模拟替换事件对象,并自动将对模拟对象的所有调用转发到原始对象。我认为这在标准测试术语中被称为“ spy ”。目前我正在做一个测试:

# Insert a mock replacement
orig_active_attr = server.active_attr
server.active_attr = mock.Mock()

# Set up side effects to 'proxy' to the original object
server.active_attr.meth1.side_effect = orig_active_attr.meth1
server.active_attr.meth2.side_effect = orig_active_attr.meth2

# Call the method being tested
server.method_being_tested()

# Assert stuff on the mock.
server.active_attr.meth2.assert_called_once()

如果 mock 上的所有方法调用都可以在没有样板的情况下自动转发到事件对象,那就太好了。

最佳答案

我似乎偶然发现了解决方案:

import mock

class A(object):
def meth(self, a):
return a
a = A()
ma = mock.Mock(wraps=a)

似乎对函数、方法和属性工作正常,但不适用于类或实例属性。

the documentation .

关于python - 使用 Python 模拟监视对现有对象的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18869141/

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