例外ではなくメソッドのクラッシュをアサートできる 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.");