我有以下swift枚举用于返回异步API-Response:
enum Result<U: Equatable> {
case success(output: U)
case failure(error: Error)
}
为了简化我的单元测试实现,我想检查我的一个方法的返回结果枚举是否等于成功
我知道我可以使用以下语句打开result-enum
if case Result.success(let configuration) = result {
// use unwrapped configuration object
}
我希望存档的是使用单行语句检查使用expect
检查结果是否成功
expect(case Result.success(let configuration) = result).to(beTrue()) <-- not compiling
答案 0 :(得分:3)
如果您的目标是仅检查成功/失败(不是成功或失败案例的详细信息),您可以使用只读变量isSuccess
和isFailure
扩展枚举:
enum Result<U: Equatable> {
case success(output: U)
case failure(error: Error)
var isSuccess: Bool {
switch self {
case .success:
return true
default:
return false
}
}
var isFailure: Bool {
switch self {
case .failure:
return true
default:
return false
}
}
}
期待结果取得成功:
expect(result.isSuccess)