Я использую Mock (http://mock.readthedocs.org/en/latest/) библиотека с Python 2.7. У меня есть основная функция, которая вызывает несколько других функций, которые я пытаюсь протестировать.
Другие функции, которые он вызывает, являются другими методами экземпляра (например, def _other_function(self, a, b)
.
Я вызываю свою основную функцию, и у меня есть другие функции, которые она вызывает, исправлены. Я только что добавил autospec=True
в патч. Однако, когда я проверяю аргументы вызова, он показывает аргумент self
(как и ожидалось):
python2.7> _other_function_mock.call_args_list
[call(<some.module.class.method object at 0x9acab90>, 1, 2)]
До установки autospec=True
он показывал бы только те аргументы, которые я действительно передал (1 и 2). Поскольку теперь аргументы вызова показывают ссылку на self
, я не могу просто вызвать mock_object.assert_any_call(1, 2)
. Мне нужно будет выбрать аргументы из mock_object.call_args_list
и сравнить.
Есть ли способ по-прежнему вызывать mock.assert_any_call
без необходимости выбирать аргументы вручную, чтобы проверить правильность переданных аргументов?
Или есть что-то лучшее, что я могу сделать, чтобы исправить методы экземпляра?