XCTAssertThrows具体例子

XCTAssertThrowsSpecific example

我有一个 XCTest 用例,代码如下:

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

这不构建。然后,我想在网上寻找正确的语法或示例,但我只找到了一个网站列表,这些网站只是重复文档中已经说明的内容。

XCTAssertThrowsSpecific (expression, specificException, format...)

例如找到here, here, here and here

我的问题是:

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

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

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

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

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

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