用lambda断言调用

时间:2016-08-18 10:59:29

标签: python mocking python-mock

我有这段代码:

password: 'password', //optional

在我的单元测试中,我想模拟它,所以检查右from shutil import rmtree def ook(path): rmtree(path, onerror=lambda x, y, z: self._logger.warn(z[1])) 是否通过了:

path

我可以用from mock import patch, ANY @patch("rmtree") def test_rmtree(self, m_rmtree): ook('/tmp/fubar') m_rmtree.assert_called_once_with('/tmp/fubar', onerror=ANY) 代替什么来检查那里有lambda?

1 个答案:

答案 0 :(得分:1)

我会使用call_argscall_count执行此操作,而不是直接使用assert_called_once_with,我不认为unittest.mock有类似于from collections import Callable ... @patch("rmtree") def test_rmtree(self, m_rmtree): ook('/tmp/fubar') assert m_rmtree.call_count == 1 args, kwargs = m_rmtree.call_args assert args[0] == '/tmp/fubar' assert isinstance(kwargs.get('onerror'), Callable) 的内容。 jasmine.any

lambda

请注意,参数与var htmlContent = []; // initilize an empty array $('tr td').each(function () { htmlContent.push($(this).text()); console.log($(this).parent().attr('id')); }); 具体无关,只是它是可调用的。