isUserAGoat(): шутка Google

Среди встроенных в Android SDK инструментов автоматизированного тестирования есть небольшая утилитка monkey. Это своего рода симулятор бешеной обезьяны, которой попал в лапы смартфон с запущенным приложением: утилита генерирует мощный поток случайных тычков, жестов и нажатий кнопок. Если приложение в таком режиме не рухнуло и не зависло, то сей факт уже говорит о некотором качестве.

Боевой Бибизян
Что ломать изволите?

При этом самому тестируемому приложению оставлена возможность определить запуск monkey с целью подтасовать результаты. Шутка: с целью предотвратить излишние последствия при таком тестировании, разумеется. Скажем, файловый менеджер может перед удалением каталога проверить: а человек ли требует выполнить эту операцию? Если до удаления случайно дотыкалась автоматическая обезьяна, то лучше этого всё же не делать. Отвечает за проверку статический метод isUserAMonkey() класса ActivityManager, но документирован он плохо.

В итоге только ленивый не пошутил на эту тему. Метод isUserAMonkey стал своеобразным мемом, разошёлся на никнеймы и подписи, был популярен на собеседованиях и даже становился почвой для расистских шуточек. Похоже, многие разработчики так и остались уверены в том, что это попросту пасхалка.

Спрашивали? Получите! Гугл решил: хотите пасхалок — их есть у меня! Смотрим в документацию UserManager:

public boolean isUserAGoat ()

Added in API level 17
Used to determine whether the user making this call is subject to teleportations.

As of LOLLIPOP, this method can now automatically identify goats using advanced goat recognition technology.

Returns
Returns true if the user making this call is a goat.

Вот так. Проверьте, являетесь ли вы козлом и, как следствие, телепортируемым объектом.

Козёл
Вернёт true

А самое главное — в документации пишут чистую правду.

В Jelly Bean и Kitkat метод возвращает false. В Lollipop — проверяет наличие вот этого приложения на устройстве. Хочешь побыть козлом — так будь им по-взрослому, официально!

Один занудный вопрос не даёт покоя всем причастным: а не лучше ли вместо пасхалок фиксить многочисленные баги? Но здесь Google следует примеру гоголевской тройки-Руси: куда-то несётся и не даёт ответа.

isUserAGoat(): шутка Google
Оцените пост


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Капча (решите пример) *