import XCTest
@testable import YourModuleName // 替换为实际的模块名
class FetchDataTests: XCTestCase {
func testFetchDataSuccess() {
let expectation = XCTestExpectation(description: "等待数据获取成功")
fetchData { result in
switch result {
case .success(let data):
XCTAssertFalse(data.isEmpty, "数据获取成功,数据不应为空")
expectation.fulfill()
case .failure(let error):
XCTFail("数据获取成功场景下不应出现错误: \(error)")
}
}
wait(for: [expectation], timeout: 5)
}
func testFetchDataFailure() {
let expectation = XCTestExpectation(description: "等待数据获取失败")
// 这里模拟网络请求失败,例如修改网络请求逻辑使其返回错误
fetchData { result in
switch result {
case .success:
XCTFail("数据获取失败场景下不应成功")
case .failure(let error):
XCTAssertNotNil(error, "数据获取失败,错误不应为空")
expectation.fulfill()
}
}
wait(for: [expectation], timeout: 5)
}
}