К сожалению, вы пытаетесь проверить класс фреймворка, который не был написан с целью тестирования и поэтому не раскрывает состояние, которое вы хотите проверить.Это затруднит утверждение о существовании пар «цель-действие», которые вы хотите проверить.В таком случае у меня есть три варианта, которые вы можете использовать, ни один из которых не является отличным решением:
Возможно, вы сможете создать подкласс UIGestureRecognizer, переопределить методы target-action, чтобы сохранить зарегистрированные пары в коллекции, которую затем сможетевыставить пользователям класса, а затем вызвать реализации этих методов суперкласса.К сожалению, тогда вы вводите новые классы просто для того, чтобы упростить тестирование, должны помнить об их использовании и, возможно, придется приводить из UIGestureRecognizer к вашему пользовательскому подклассу в зависимости от того, откуда вы получаете ссылку на распознаватель жестов.ваш тест может перебросить новые версии методов целевого действия в UIGestureRecognizer, что даст вам возможность отслеживать добавленные цели.Просто позаботьтесь о том, чтобы поменять исходные реализации методов на место, когда вы закончите, или будущие тесты будут иметь неожиданное поведение.
Наконец, вы сможете найти частный вызов API, который даст вам возможность проверитьзарегистрированные целевые действия на распознавателе жестов.Просто убедитесь, что частный вызов API остается только в вашем тестовом коде.