python mock on方法返回mock而不是return_value?

时间:2016-04-28 14:59:12

标签: python unit-testing mocking python-mock

考虑以下(非常简单)单元测试文件:

import unittest
from mock import Mock

class TestMuPE(unittest.TestCase):

  def test_01(self):
    mock_buffer = Mock()
    mock_buffer.frame_count.return_value(42)
    self.assertEquals(mock_buffer.frame_count(), 42)

    # => AssertionError: <Mock name='mock.frame_count()' id='4413645520'> != 42

我希望mock_buffer.frame_count()评估为42,但它会返回一个模拟对象。我错过了什么?

P.S。:我正在运行带有模拟2.0.0反向端口的Python 2.7.11。

1 个答案:

答案 0 :(得分:4)

您可以使用以下方法设置返回值:

mock_buffer.frame_count.return_value = 42

而不是:

mock_buffer.frame_count.return_value(42)