// XCTFail(format…) 生成一個失敗的測試;
XCTFail(@"Fail");
// XCTAssertNil(a1, format...) 為空判斷, a1 為空時通過,反之不通過;
? XCTAssertNil(@"not nil string", @"string must be nil");
// XCTAssertNotNil(a1, format…) 不為空判斷尿瞭,a1不為空時通過,反之不通過;
?XCTAssertNotNil(@"not nil string", @"string can not be nil");
// XCTAssert(expression, format...) 當(dāng)expression求值為TRUE時通過砸西;
?XCTAssert((2 > 2), @"expression must be true");
// XCTAssertTrue(expression, format...) 當(dāng)expression求值為TRUE時通過;
XCTAssertTrue(1, @"Can not be zero");
// XCTAssertFalse(expression, format...) 當(dāng)expression求值為False時通過;
? ?XCTAssertFalse((2 < 2), @"expression must be false");
// XCTAssertEqualObjects(a1, a2, format...) 判斷相等芹枷, [a1 isEqual:a2] 值為TRUE時通過衅疙,其中一個不為空時,不通過鸳慈;
? XCTAssertEqualObjects(@"1", @"1", @"[a1 isEqual:a2] should return YES");
?XCTAssertEqualObjects(@"1", @"2", @"[a1 isEqual:a2] should return YES");
//? ? XCTAssertNotEqualObjects(a1, a2, format...) 判斷不等饱溢, [a1 isEqual:a2] 值為False時通過,
XCTAssertNotEqualObjects(@"1", @"1", @"[a1 isEqual:a2] should return NO");
?XCTAssertNotEqualObjects(@"1", @"2", @"[a1 isEqual:a2] should return NO");
// XCTAssertEqual(a1, a2, format...) 判斷相等(當(dāng)a1和a2是 C語言標(biāo)量走芋、結(jié)構(gòu)體或聯(lián)合體時使用,實際測試發(fā)現(xiàn)NSString也可以)绩郎;
// 1.比較基本數(shù)據(jù)類型變量
?XCTAssertEqual(1, 2, @"a1 = a2 shoud be true"); // 無法通過測試
? XCTAssertEqual(1, 1, @"a1 = a2 shoud be true"); // 通過測試
// 2.比較NSString對象
NSString *str1 = @"1"; NSString *str2 = @"1";
NSString *str3 = str1;
?XCTAssertEqual(str1, str2, @"a1 and a2 should point to the same object"); // 通過測試
XCTAssertEqual(str1, str3, @"a1 and a2 should point to the same object"); // 通過測試
// 3.比較NSArray對象
?NSArray *array1 = @[@1];
?NSArray *array2 = @[@1];
NSArray *array3 = array1;
XCTAssertEqual(array1, array2, @"a1 and a2 should point to the same object"); // 無法通過測試
XCTAssertEqual(array1, array3, @"a1 and a2 should point to the same object"); // 通過測試
// XCTAssertNotEqual(a1, a2, format...) 判斷不等(當(dāng)a1和a2是 C語言標(biāo)量、結(jié)構(gòu)體或聯(lián)合體時使用)翁逞;
// XCTAssertEqualWithAccuracy(a1, a2, accuracy, format...) 判斷相等肋杖,(double或float類型)提供一個誤差范圍,當(dāng)在誤差范圍(+/- accuracy )以內(nèi)相等時通過測試挖函;
//? ? XCTAssertEqualWithAccuracy(1.0f, 1.5f, 0.25f, @"a1 = a2 in accuracy should return YES");
// XCTAssertNotEqualWithAccuracy(a1, a2, accuracy, format...) 判斷不等状植,(double或float類型)提供一個誤差范圍,當(dāng)在誤差范圍以內(nèi)不等時通過測試怨喘;
//? ? XCTAssertNotEqualWithAccuracy(1.0f, 1.5f, 0.25f, @"a1 = a2 in accuracy should return NO");
// XCTAssertThrows(expression, format...) 異常測試津畸,當(dāng)expression發(fā)生異常時通過;反之不通過哲思;(很變態(tài))
// XCTAssertThrowsSpecific(expression, specificException, format...) 異常測試洼畅,當(dāng)expression發(fā)生 specificException 異常時通過;反之發(fā)生其他異撑锱猓或不發(fā)生異常均不通過帝簇;
// XCTAssertThrowsSpecificNamed(expression, specificException, exception_name, format...) 異常測試,當(dāng)expression發(fā)生具體異常靠益、具體異常名稱的異常時通過測試丧肴,反之不通過;
// XCTAssertNoThrow(expression, format…) 異常測試胧后,當(dāng)expression沒有發(fā)生異常時通過測試芋浮;
// XCTAssertNoThrowSpecific(expression, specificException, format...)異常測試,當(dāng)expression沒有發(fā)生具體異常壳快、具體異常名稱的異常時通過測試纸巷,反之不通過;
// XCTAssertNoThrowSpecificNamed(expression, specificExcept
- (void)setUp; // 測試開始前調(diào)用眶痰,可以初始化一些對象和變量
- (void)tearDown瘤旨; // 測試結(jié)束后調(diào)用
- (void)test##Name; // 含有test前綴無參數(shù)無返回的方法都為一個測試方法
- (void)measureBlock:((void (^)(void)))block;? // 測量執(zhí)行時間
- (void)waitForExpectationsWithTimeout:(NSTimeInterval)timeout handler:(nullable XCWaitCompletionHandler)handler; // 多少秒exception不fullfill就報錯
- (XCTestExpectation *)expectationForNotification:(NSNotificationName)notificationName object:(nullable id)objectToObserve handler:(nullable XCNotificationExpectationHandler)handler;? // 匹配到通知fullfill
- (XCTestExpectation *)expectationForPredicate:(NSPredicate *)predicate evaluatedWithObject:(id)object handler:(nullable XCPredicateExpectationHandler)handler;? // predicate 返回true測試fullfill