2016-04-28 137 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

[捂臉]衛生署[/捂臉]謝謝。 –