我正在使用 XCTest 编写 Cocoa 单元测试,最近第一次使用 XCTAssertThrows。这很酷,但我想用 XCTAssertThrowsSpecific 让它变得更好,并且需要一定的例外。
这是一个示例测试:
-(void)testShortPassword {
XCTAssertThrows([user storePassword:@"abc"],@"Expect exception for short pw");
}
在我的用户类上,我有以下代码:
-(void)storePassword:(NSString*)password {
NSCAssert(password.length > 6, @"Password must be longer than 6 characters");
// go on to store the password on the keychain
}
请记住,Cocoa 通常会避免使用异常(因此返回错误并在前面的示例中显示 UI 等可能会更好)我如何以可以被捕获的方式抛出异常XCTAssertThrowsSpecific
?我如何在 中指定XCTAssertThrowsSpecific(expression, specificException, format...)
?