【发布时间】:2017-02-14 23:26:51
【问题描述】:
我正在尝试为这样的类编写测试:
from public_library import SuperClass
from another_library import Foo
class MyClass(SuperClass):
def __init__(self):
# Call super class
super(MyClass, self).__init__()
self._foo = Foo(
name='Some Name',
thing='Some Thing',
# self.something is defined in SuperClass.__init__()
cool=self.something.cool(),
)
在我的测试中,我模拟了Foo 类并调用assert_called_once_with() 以确保self._foo 设置正确。但是,我不知道如何获得self.something.cool() 的返回值。
当然,我可以将返回值设置为self 下的实例变量,并在我的测试中使用它,但这似乎是一个丑陋的解决方案。有没有办法我可以使用patch() 来做到这一点?
【问题讨论】:
-
还有here。
-
@user2357112:虽然
mock_calls很有帮助,但我不知道如何将self.something修补到MagicMock对象中。 -
为什么需要这样做?你说你试图得到
self.something.cool()的返回值。修补self.something似乎正在修补你正在尝试测试的东西。 -
如果您想要该返回值,请检查调用
Foo的内容,因为Foo记录了该值。
标签: python unit-testing mocking