2016-04-28 71 views
1

考虑下面的(很简单)的单元测试文件:蟒蛇模拟方法返回模拟而不是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 .:我在加载模拟-2.0.0 backport的时候运行Python 2.7.11。

回答

4

您可以通过设置返回值:

mock_buffer.frame_count.return_value = 42 

相反的:

mock_buffer.frame_count.return_value(42) 
+0

[捂脸]卫生署[/捂脸]谢谢。 –