python 模拟返回模拟而不是 return_value 的方法?
python mock on method returning mock rather than return_value?
考虑以下(非常简单的)单元测试文件:
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 backport。
您可以使用以下方法设置 return 值:
mock_buffer.frame_count.return_value = 42
而不是:
mock_buffer.frame_count.return_value(42)
考虑以下(非常简单的)单元测试文件:
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 backport。
您可以使用以下方法设置 return 值:
mock_buffer.frame_count.return_value = 42
而不是:
mock_buffer.frame_count.return_value(42)