2013-12-21 1 views
3

Есть ли какая-то причина моих тестов Киви единицы терпят неудачу с этими двух линиями:сравнения класса, isKindOfClass не работает в Киви спецификации

[[theValue([editAuthorViewController class] == [EditAuthorViewController class]) should] beYes]; 

[[theValue([editAuthorViewController isKindOfClass:[EditAuthorViewController class]]) should] beYes]; 

В то время как проходит эта линия?

ответ

6

Оказывается, есть выражение Киви, чтобы проверить это, о котором я не знал.

[[editAuthorViewController should] beKindOfClass:[EditAuthorViewController class]]; 

Это изначально не удалось, потому что мой файл EditAuthorViewController.m был добавлен в моей тестовой мишени. Поскольку [EditAuthorViewController class] возвращал другой указатель при вызове из тестового пакета, сравнение не удавалось.

Чтобы исправить это, мне пришлось удалить EditAuthorViewController.m из моих источников компиляции в мою тестовую цель.

+0

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

+0

Мне удалось получить все вышеперечисленные строки, удаляя 'EditAuthorViewController.m' из моих источников компиляции в моей тестовой цели. Существует большое объяснение проблемы и решения здесь: http://www.objc.io/issue-1/testing-view-controllers.html в разделе «Боковое примечание о классах и инъекциях». –

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

  • Нет связанных вопросов^_^