How to use XCTAssertThrowsSpecific
You should only use exceptions for exceptional cases, not for error handling and flow control
Having said that, here's how you use XCTAssertThrowsSpecific
:
XCTAssertThrowsSpecific
expects the specific class of the exception as the second parameter. NSCAssert
throws an NSException
. To test for that, use
XCTAssertThrowsSpecific([object methodThatShouldThrow], NSException, @"should throw an exception");
Now, that won't help much, because it's likely that every exception is an NSException
or a subclass thereof.
NSException
s have a name
property that determines the type of the exception. In case of NSCAssert
this is NSInternalInconsistencyException
. To test for that, use XCTAssertThrowsSpecificNamed
XCTAssertThrowsSpecificNamed( [object methodThatShouldThrow], NSException, NSInternalInconsistencyException, @"should throw NSInternalInconsistencyException");