2014-11-14 2 views
2

Я следующая функция, которая вызывается дваждытест функция вызывается дважды в питоне

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 (» а «)» вызывает ошибку утверждения, так что я могу показать, что называется дважды.

Я не знаю, возможно ли это или нет. Кто-нибудь может мне сказать, как это сделать?

Благодаря

+1

HTTP: // WWW .voidspace.org.uk/python/mock/mock.html # mock.Mock.call_count – coldmind

+0

@coldmind: Than ks, он работал – Ksc

ответ

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/

Смежные вопросы