XCTAssertThrows具体例子
Posted
技术标签:
【中文标题】XCTAssertThrows具体例子【英文标题】:XCTAssertThrowsSpecific example 【发布时间】: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...)
例如找到here、here、here 和here。
我的问题是:
-
这个特定函数的语法的正确示例是什么?
什么是开始寻找这些类型的好网站
示例,无需找到太多硬核代码。
【问题讨论】:
您遇到的构建错误是什么? 未知类型名称“NSInvalidArgumentException”。我发现如果我将其更改为 NSException,它会起作用。不知何故,Xcode 和编译器无法识别 NSInvalidArgumentException,即使这是示例中引发的错误。 【参考方案1】:NSInvalidArgumentException
是异常的名称(即-[NSException name]
),而不是类。
这是XCTAssertThrowsSpecific
的正确用法示例:
XCTAssertThrowsSpecific([obj methodThatThrowsException], NSException, @"Optional assertion failure description");
如果您想知道何时抛出具有特定名称(例如NSInvalidArgumentException
)的异常,请使用XCTAssertThrowsSpecificNamed
:
XCTAssertThrowsSpecificNamed([obj methodThatThrowsException], NSException, NSInvalidArgumentException);
【讨论】:
以上是关于XCTAssertThrows具体例子的主要内容,如果未能解决你的问题,请参考以下文章