2015-05-31 2 views
1

У меня есть сторонняя библиотека, которая написана в Swift. Библиотека предоставляет класс, в котором есть некоторые методы класса. Используя Typhoon, я хочу ввести класс в один из моих классов, чтобы при модульном тестировании я мог вводить класс mock, который предоставляет поддельные методы класса. Я новичок в Typhoon, и я пошел по документации, но не понял, как это сделать. Это даже возможно с Тайфун?Тайфун: как ввести класс вместо экземпляра

+0

Я знаю, что это не ответ на ваш вопрос, но вы также можете создать простую тонкую оболочку вашего стороннего класса (с помощью методов экземпляра вместо классных) и вместо этого ввести его. – e1985

ответ

1

Да, в Руководстве пользователя в разделе «Настройка ввода» показано, как вводить примитивы, скалярные значения и т. Д.

Чтобы придать класс:

[initializer injectParameterWith:[SomeClass class]]; 

Это также относится к инъекции собственности и введения метода.

Чтобы придать селектор:

[initializer injectParameterWith:NSValueFromPrimitive(@selector(selectorValue))]; 

Правила Typhoon:

  • Ссылки на другие определения разрешаются к встроенному экземпляру.
  • Простые объекты, примитивы и скалярные значения вводятся как есть (скалярные значения и примитивы должны быть обернуты).
  • Коллекции (NSArray, NSSet и т. Д.), Содержащие ссылки на другие определения, имеют эти ссылки, разрешенные для встроенного экземпляра. Любые другие значения проходят через как есть.

Существует также Typhoon Config, что позволяет хранить конфигурацию, простые объекты и т. Д. Во внешнем plist, json или файле свойств.

Смежные вопросы