У меня есть сторонняя библиотека, которая написана в Swift. Библиотека предоставляет класс, в котором есть некоторые методы класса. Используя Typhoon, я хочу ввести класс в один из моих классов, чтобы при модульном тестировании я мог вводить класс mock, который предоставляет поддельные методы класса. Я новичок в Typhoon, и я пошел по документации, но не понял, как это сделать. Это даже возможно с Тайфун?Тайфун: как ввести класс вместо экземпляра
1
A
ответ
1
Да, в Руководстве пользователя в разделе «Настройка ввода» показано, как вводить примитивы, скалярные значения и т. Д.
Чтобы придать класс:
[initializer injectParameterWith:[SomeClass class]];
Это также относится к инъекции собственности и введения метода.
Чтобы придать селектор:
[initializer injectParameterWith:NSValueFromPrimitive(@selector(selectorValue))];
Правила Typhoon:
- Ссылки на другие определения разрешаются к встроенному экземпляру.
- Простые объекты, примитивы и скалярные значения вводятся как есть (скалярные значения и примитивы должны быть обернуты).
- Коллекции (NSArray, NSSet и т. Д.), Содержащие ссылки на другие определения, имеют эти ссылки, разрешенные для встроенного экземпляра. Любые другие значения проходят через как есть.
Существует также Typhoon Config, что позволяет хранить конфигурацию, простые объекты и т. Д. Во внешнем plist, json или файле свойств.
Смежные вопросы
- 1. Ember association возвращает класс вместо экземпляра
- 2. Тайфун: инъекция поставщика контроллера вида
- 3. Тайфун - введите тот же самый экземпляр везде
- 4. Тайфун Начало работы
- 5. Тайфун - Инициализатор не называется
- 6. Тайфун ленивая инъекция в Swift
- 7. Почему это компилирует ссылку на класс вместо экземпляра?
- 8. Java - ставьте класс static вместо одного его экземпляра
- 9. Статический класс как свойство экземпляра
- 10. Извлечь экземпляр экземпляра Salesforce вместо экземпляра visualforce
- 11. Как ввести переменные в класс C++?
- 12. Как ввести класс Memcached для обслуживания Symfony2
- 13. Как ввести HttpServletRequest в класс не-ресурса?
- 14. Как ввести анонимный внутренний класс с кинжалом?
- 15. Как ввести класс в конструктор другого класса?
- 16. Как ввести рабочий класс в реализацию ServerSocket?
- 17. Как ввести общий тип в класс?
- 18. Ввести значения в класс CSS
- 19. JMockit: Как ввести класс MockUp в тестируемый класс?
- 20. как вызвать класс экземпляра из App.xaml.cs
- 21. Тайфун: инжекционные контроллеры из раскадровки OS X
- 22. Полиморфизм: класс экземпляра?
- 23. ES6 класс/свойства экземпляра
- 24. EdgeNGram: класс создания экземпляра экземпляра: 'org.apache.lucene.analysis.ngram.EdgeNGramFilterFactory'
- 25. Тайфун: ввод значений времени выполнения в одноэлементный
- 26. Класс против локального экземпляра
- 27. Как ввести uiBinder с помощью @Inject (вместо GWT.create())?
- 28. используя метод экземпляра вместо инициализации
- 29. Тайфун: проволочная круговая зависимость в раскадровке, созданная диспетчер представлений
- 30. Play 2.4 Scala, Как ввести класс с параметром?
Я знаю, что это не ответ на ваш вопрос, но вы также можете создать простую тонкую оболочку вашего стороннего класса (с помощью методов экземпляра вместо классных) и вместо этого ввести его. – e1985