В Яве, ПХП и некоторых других языках, если нужно подменить объект внутри функции, придётся сделать так, чтобы в функцию передавались параметры. В Питоне monkey patching позволяет не делать этого.
Ту-154ЛЛ («летающая лаборатория») там был, но не как макет «Бурана», а в «натуральном» виде. Хотя и несколько доработанном, чтобы аэродинамика была похожа на бурановскую. Использовался для отработки посадки «Бурана», как ручной, так и автоматической.
У Mock синтаксис бесчеловечный. ╰_╯ Сложилось впечатление, что моки это один и тех редких случаев, где fluent интересы оказываются уместным. У нас прижился лишь flexmock.
Судя по приведенным в документации Flexmock примерам, он сильно смахивает на мой любимый Mox, но уступает последнему в функционале и удобстве использования.
мы раньше использовали Mox, пока не наткнулись на flexmock. :)
Mox заставляет делать в тестах избыточные шаги .ReplayAll(), .VerifyAll(), что утомляет. если один из них не был вызван (например из-за того, что тестируемый код бросил непредвиденное исключение), то установленные моки могут протекать в последующие тесты, что вызывает трудно диагностируемые глюки. возможно, сейчас это всё уже не актуально. что касается функциональности, то функциональности flexmock мне хватает для повседневных нужд. не хватает, пожалуй только record'а.
Модуль Mock: макеты-пустышки в тестировании