Можно изменить имя тестового аргумента исправленного класса или функции при использовании патча в качестве декоратора.Python Mock patch.multiple names names
@patch('module.ClassName2')
@patch('module.ClassName1')
def test(MockClass1, MockClass2):
MockClass1.test.return_value = 'testing'
Однако, я не могу найти в документации, как отличить оригинальный объект и издеваться при использовании patch.multiple
.
@patch.multiple('module.ClassName', foo=DEFAULT, bar=DEFAULT)
def test(foo, bar):
foo.return_value = 'foo'
В приведенном выше примере, аргументы в тесте должны быть foo
и bar
. Есть ли какой-либо чистый способ разрешить их использование с более четкой дифференциацией, например. mock_foo
?
Это также удобно в тех случаях, когда исходный класс или метод, необходимые в части теста, избегая импорт как from module import Class as OriginalClass
Спасибо заранее.
Я знал, что издевается были переданы в качестве словаря в контексте менеджер, но не думал применять такую же логику к декоратору! Я думаю, вы правы, и это как можно ближе. Благодаря! –