Я пишу Cocoa модульные тесты, используя XCTest и недавно использую 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 вообще избегает использования исключений (поэтому лучше было бы вернуть ошибку и показать интерфейс в предыдущем примере и т.д.). Как я могу исключить исключение быть пойманным XCTAssertThrowsSpecific
? Как указать, что в XCTAssertThrowsSpecific(expression, specificException, format...)
?