XCTAssertThrowsSpecific示例

时间:2015-05-07 13:00:47

标签: objective-c xctest

我有一个XCTest案例,其中包含以下代码:

- (void)testNilInDict
{
    NSMutableDictionary *r = (NSMutableDictionary*) @{@"1": @1, @"2": @2};
    XCTAssertThrowsSpecific([r setObject:nil forKey:@"3"], NSInvalidArgumentException);
}

这不构建。然后,我想在线查找正确的语法或示例,但我发现的只是一个网站列表,只重复文档已经说明的内容。

XCTAssertThrowsSpecific (expression, specificException, format...)

找到例如herehereherehere

我的问题是:

  1. 这个特定函数的语法的正确示例是什么?
  2. 什么是开始寻找这些类型的好网站 示例,没有找到太多的核心代码。

1 个答案:

答案 0 :(得分:2)

NSInvalidArgumentException是异常的名称(即-[NSException name]),而不是类。

以下是XCTAssertThrowsSpecific的正确用法示例:

XCTAssertThrowsSpecific([obj methodThatThrowsException], NSException, @"Optional assertion failure description");

如果您想知道何时抛出具有特定名称的异常(例如NSInvalidArgumentException),请使用XCTAssertThrowsSpecificNamed

XCTAssertThrowsSpecificNamed([obj methodThatThrowsException], NSException, NSInvalidArgumentException);