Comments 19
Не больше, чем тестирование вообще. Автору спасибо, и отдельное — за макет Бурана)
> При этом тестируемые функции не нужно адаптировать для тестов

С каких пор код адаптируют для тестов? Тесты могут указать тебе на архитектурные ошибки и их надо исправлять, но надо же понимать что код модифицируется не для тестов!
В Яве, ПХП и некоторых других языках, если нужно подменить объект внутри функции, придётся сделать так, чтобы в функцию передавались параметры. В Питоне monkey patching позволяет не делать этого.
Мое имхо, это не правильно и не надо этого хотеть. Кстати, не только передавать можно, а еще есть куча способов.
Мне кажется это было бы глупо. Я понимаю что Ваша статья не о полезности монкей патчинга, но всё же…
Архитектурные вопросы широки и необъятны, можно рассуждать много. :) А почему глупо? Если на статью материал найдётся, она будет умной.
Я не про статью :) А про то что вести дискуссию статьями нецелесообразно скажем так)
«В воздухе летал Ту-154 в обвесе, повторяющем форму Бурана»

А на фото почему-то изображён БТС-002 :)
Да, действительно, это рабочий прототип. Читал на сайте про Буран что был Ту-154, но, возможно, уже плохо помню.
Ту-154ЛЛ («летающая лаборатория») там был, но не как макет «Бурана», а в «натуральном» виде. Хотя и несколько доработанном, чтобы аэродинамика была похожа на бурановскую. Использовался для отработки посадки «Бурана», как ручной, так и автоматической.
У Mock синтаксис бесчеловечный. ╰_╯ Сложилось впечатление, что моки это один и тех редких случаев, где fluent интересы оказываются уместным. У нас прижился лишь flexmock.
Судя по приведенным в документации Flexmock примерам, он сильно смахивает на мой любимый Mox, но уступает последнему в функционале и удобстве использования.
мы раньше использовали Mox, пока не наткнулись на flexmock. :)
Mox заставляет делать в тестах избыточные шаги .ReplayAll(), .VerifyAll(), что утомляет. если один из них не был вызван (например из-за того, что тестируемый код бросил непредвиденное исключение), то установленные моки могут протекать в последующие тесты, что вызывает трудно диагностируемые глюки. возможно, сейчас это всё уже не актуально. что касается функциональности, то функциональности flexmock мне хватает для повседневных нужд. не хватает, пожалуй только record'а.
>>> [i for i in xrange(3)]
[0, 1, 2]


значит функция real() с «пропатченной» функцией permutations напечатает 0 1 3
Only those users with full accounts are able to leave comments. Log in, please.