【问题标题】:XCTAssertThrowsSpecific exampleXCTAssertThrows具体例子
【发布时间】:2015-05-07 13:00:47
【问题描述】:

我有一个带有以下代码的 XCTest 案例:

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

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

XCTAssertThrowsSpecific (expression, specificException, format...)

例如找到herehereherehere

我的问题是:

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

【问题讨论】:

  • 您遇到的构建错误是什么?
  • 未知类型名称“NSInvalidArgumentException”。我发现如果我将其更改为 NSException,它会起作用。不知何故,Xcode 和编译器无法识别 NSInvalidArgumentException,即使这是示例中引发的错误。

标签: objective-c xctest


【解决方案1】:

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

这是XCTAssertThrowsSpecific的正确用法示例:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    相关资源
    最近更新 更多