3

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

0 に答える 0