我试图找到一个可以断言方法崩溃而不是异常的 XCT 宏。例如,在 NSDictionary 上设置 nil 键会引发异常,因此您可以使用
XCTAssertThrows([[NSMutableDictionary dictionary] setObject:@"foo" forKey:nil], @"Setting a nil key on an NSMutableDictionary should throw an exception.")
但是在 NSUserDefaults 上设置 nil 键似乎不会引发异常,它只是用一行代码使代码崩溃
线程 1:EXC_BREAKPOINT(代码=EXC_I386_BPT,子代码=0x0)
这看起来像一个异常断点,但不是抛出?无论如何,下面的断言将杀死上面提到的测试套件。
XCTAssertThrows([[NSUserDefaults standardUserDefaults] setObject:@"foo" forKey:nil], @"Setting a nil key on NSUserDefaults should crash.");