正确使用create_autospec

时间:2018-07-25 19:09:13

标签: python unit-testing mocking

我正在阅读this example的create_autospec创建的模拟。

在该示例中,作者使用方法bar创建了一个名为Foo的类,该类返回pass

然后他继续演示create_autospec

BetterMockFoo = mock.create_autospec(Foo)
foo = BetterMockFoo()
foo.bar()

这将返回以下内容

  

<MagicMock name='mock().bar()' id='17171792'>

我不明白您为什么要这么做。这种方法会产生什么价值?

1 个答案:

答案 0 :(得分:0)

您所包含的三行代码仅演示了一条快乐的路-如果调用模拟对象的bar方法,它不会失败,正如预期的那样。返回值无关紧要。

如果要调用foo.baz(),它将被炸掉,因为模拟的类Foo没有该方法。