我正在为异步操作编写一些测试用例,其中有两个操作需要对其执行单元测试。
假设我有一些需要调用的登录webservice,在响应时应该调用另一个profile webservice。
是否可以使用iOS中的单元测试来测试上述场景?
提前谢谢你。

最佳答案

是的,这实际上很简单,您可以使用expectations等待任务完成。
例子:

// Create an expectation for a background download task.
let expectation = XCTestExpectation(description: "Login and fetch profile")

MyApiClient.shared.login(username: username, password: password) { auth in

    // check login was successful before continuing
    MyApiClient.shared.fetchUserProfile(userId: auth.userId) { profile in

        XCTAssertNotNil(profile)

        // Fulfill the expectation to indicate that the background task has finished successfully.
        expectation.fulfill()
    }
}

// Wait until the expectation is fulfilled, with a timeout of 10 seconds.
wait(for: [expectation], timeout: 10.0)

关于swift - 如何使用XCTestCases实现异步任务依赖性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48824961/

10-10 21:34