【问题标题】:python mock on method returning mock rather than return_value?python模拟方法返回模拟而不是return_value?
【发布时间】:2016-04-28 14:59:11
【问题描述】:

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

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.:我正在运行 Python 2.7.11,并加载了 mock-2.0.0 反向端口。

【问题讨论】:

    标签: python unit-testing mocking python-mock


    【解决方案1】:

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

    mock_buffer.frame_count.return_value = 42
    

    代替:

    mock_buffer.frame_count.return_value(42)
    

    【讨论】:

    • [facepalm]Doh.[/facepalm] 谢谢。
    猜你喜欢
    • 1970-01-01
    • 2020-11-14
    • 2019-07-23
    • 2021-10-22
    • 2016-11-07
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    相关资源
    最近更新 更多