模拟和测试类中的单个方法(MagicMock / py.test)

时间:2016-04-11 13:08:47

标签: python unit-testing mocking pytest

我想在课堂上为一个方法编写一个测试(让我们说它是一个' str'类):

   mocked_str = mock.MagicMock(str)
   str.__len__(mocked_str)

但它失败了:

TypeError: descriptor '__len__' requires a 'str' object but received a 'MagicMock'

除了单个函数(用于测试)之外,我如何模拟整个类?感谢。

1 个答案:

答案 0 :(得分:0)

看起来你有错误的方法。 mocked_str是您刚刚模拟的对象,__len__是其上的模拟方法:

>>> mocked_str.__len__('foo')
0