2014-11-14 74 views
2

兩次我都被稱爲被調用函數下面的函數兩次測試在python

def func(): 
    i=2 
    while i 
     call_me("abc") 
     i-=1 

我需要測試這個功能是否被調用了兩次。在測試用例測試下面,它是否在給定參數的情況下多次調用。

@patch('call_me') 
def test_func(self,mock_call_me): 
    self.val="abc" 
    self.assertEqual(func(),None) 
    mock_call_me.assert_called_with(self.val) 

我想編寫一個測試情況下「mock_call_me.assert_called_once_with(」 ABC「)」引發斷言錯誤,這樣我可以顯示它被稱爲兩次。

我不知道這是否可能。是否有人告訴我如何做到這一點?

感謝

+1

HTTP:// WWW .voidspace.org.uk/python/mock/mock.html#mock.Mock.call_count – coldmind 2014-11-14 16:28:25

+0

@coldmind:謝謝,我工作 – Ksc 2014-11-14 16:32:15

回答

5
@patch('call_me') 
def test_func(self,mock_call_me): 
    self.assertEqual(func(),None) 
    self.assertEqual(mock_call_me.call_count, 2) 
-1

我知道,如果你使用flexmock那麼你可以把它寫這種方式:

flexmock(call_me).should_receive('abc').once() flexmock(call_me).should_receive('abc').twice()

鏈接:http://has207.github.io/flexmock/