Я использую Xcode 4 и GHUnit для написания некоторых модульных тестов в первый раз.Похоже, все советы предлагают использовать GHUnit, а не OCUnit.
У меня есть собственный объект коллекции под названием «myList», и я передаю сообщение, чтобы получить выборку на index:-1
.Поэтому он корректно генерирует исключение NSRangeException (из базового изменяемого массива).
Я пытаюсь уловить это с помощью утверждения GHAssertThrowsSpecific.
Следующая строка кода не будет компилироваться, говоря «Неизвестный типname 'NSRangeException'.
GHAssertThrowsSpecific(s = [myList selectionAtIndex:-1],
NSRangeException, @"Should have thrown an NSRangeException", nil);
Я #importing "Foundation/NSException.h"
, где NSRangeException, кажется, определен.Если я изменю его на:
GHAssertThrowsSpecific(s = [myList selectionAtIndex:-1],
NSException, @"Should have thrown an NSException", nil);
, то компилируется нормально, и утверждение работает, так что это как-то связано с NSRangeException.
Если я загляну в заголовки, NSRangeException, по-видимому, определяется как NSString * const
, и в этом случае как мне попытаться доказать, что я ожидаю его поймать.
Яочевидно, что я довольно тупой, потому что не вижу, что делаю неправильно.