2014-11-14 35 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/