oro*_*aki 6 python python-mock
我想创建一个mock.Mock()对象,然后添加一个称为session实例方法的方法,该方法传递self对模拟对象的引用,允许该方法向模拟对象添加状态。这是可能的(无需手动使用types.MethodType,例如,使用模拟的内置 API),还是我应该找到解决方法?
请注意,我发现了这个问题,它是针对 Ruby 的,似乎涵盖了类似的内容,如果不是同一件事的话。不幸的是,我根本不了解 Ruby。
mock_answer = Mock()
def session():
mock_answer.b = 1
mock_answer.session = session
mock_answer.session()
print(mock_answer.b) # 1
Run Code Online (Sandbox Code Playgroud)
self其实你不需要。
如果你想增强类的功能mock.Mock,只需子类化Mock并添加你自己的方法即可。
class MyMock(Mock):
def session(self):
# Save session data here?
Run Code Online (Sandbox Code Playgroud)
模拟文档解释说,当创建新模拟时,它将与父模拟具有相同的类型。这意味着该session函数也可用于在模拟过程中创建的任何其他模拟。
session这不包括您需要将函数动态附加到现有模拟对象的情况。
| 归档时间: |
|
| 查看次数: |
7433 次 |
| 最近记录: |