我有一个XCTest案例,其中包含以下代码:
- (void)testNilInDict
{
NSMutableDictionary *r = (NSMutableDictionary*) @{@"1": @1, @"2": @2};
XCTAssertThrowsSpecific([r setObject:nil forKey:@"3"], NSInvalidArgumentException);
}
这不构建。然后,我想在线查找正确的语法或示例,但我发现的只是一个网站列表,只重复文档已经说明的内容。
XCTAssertThrowsSpecific (expression, specificException, format...)
我的问题是:
答案 0 :(得分:2)
NSInvalidArgumentException
是异常的名称(即-[NSException name]
),而不是类。
以下是XCTAssertThrowsSpecific
的正确用法示例:
XCTAssertThrowsSpecific([obj methodThatThrowsException], NSException, @"Optional assertion failure description");
如果您想知道何时抛出具有特定名称的异常(例如NSInvalidArgumentException
),请使用XCTAssertThrowsSpecificNamed
:
XCTAssertThrowsSpecificNamed([obj methodThatThrowsException], NSException, NSInvalidArgumentException);