0

我正在为异步操作编写一些测试用例,其中我有两个需要执行单元测试的操作。

假设我有一些需要调用的登录 web 服务,并且应该调用另一个配置文件 web 服务的响应。

是否可以在 iOS 中使用单元测试来测试上述场景?

先感谢您。

4

2 回答 2

1

是的,这实际上很容易,您使用期望来等待任务完成。

例子:

// 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)
于 2018-02-16T10:51:15.417 回答
0

查看 Apple 提供的有关测试具有预期的异步操作的资源:https ://developer.apple.com/documentation/xctest/asynchronous_tests_and_expectations/testing_asynchronous_operations_with_expectations

于 2018-02-16T10:55:31.357 回答