XCTAssertEqual
スカラ型の比較。同値の場合、OK
func testAA() throws {
XCTAssertEqual(1, 1) // OK
XCTAssertEqual("a", "a") // OK
XCTAssertEqual("a", "") // NG XCTAssertEqual failed: ("a") is not equal to ("")
XCTAssertEqual("a", "", "間違ってます")
// NG XCTAssertEqual failed: ("a") is not equal to ("") - 間違ってます
}
XCTAssertNotEqual
スカラ型の比較。同値の場合、NG
func testAA() throws {
let a: Int = 1
let b: Int = 2
XCTAssertNotEqual(a, b) // OK
XCTAssertNotEqual(1, 1, "同じ値は失敗")
// NG XCTAssertNotEqual failed: ("1") is equal to ("1") - 同じ値は失敗
}
XCTAssertIdentical
AnyObjectに準拠する値の比較
func testAA() throws {
let a = NSDate(timeIntervalSince1970: 10)
let b = NSDate(timeIntervalSince1970: 10)
XCTAssertIdentical(a, b) // OK
}
XCTAssert
bool値でエラーを判定
func testAA() throws {
XCTAssert(true) // OK
let a = false
XCTAssert(a, "falseは失敗") // NG XCTAssertTrue failed - falseは失敗
XCTFail
アサートを発行。期待しないルートを通った時などに使う
XCTFail("このルートはエラー") // NG "failed - このルートはエラー"
非同期のテスト
XCTestExpectation:要件発行
wait:要件が満たされるまで待つ
fullfillメソッド:要件が満たされた場合に実行
// XCTestExpectationインスタンス生成
let expectation = XCTestExpectation(description: "testAA")
let cancellable = call(URLRequest(url: urlComponents.url!))
.sink(receiveCompletion: { completion in
switch completion {
// 失敗
case .failure(let error):
print(error.localizedDescription)
// 成功
case .finished:
// 非同期処理が正常完了(XCTestExpectationの要件が満たされた)
expectation.fulfill()
}
}, receiveValue: { Data in
data = Data
})
// 10秒以内に処理が完了するのを待つ
wait(for: [expectation], timeout: 10)
