Swift 5结果:XCTAssertEqual不明确,没有更多上下文

时间:2019-05-11 14:57:34

标签: unit-testing swift5

XCTAssertEqual produces an error: Expression type '()' is ambiguous without more context在比较两个结果值时(见下文):

let success = Result<String, Error>.success("Value")
let failure = Result<String, Error>.failure(NSError.createError("Error"))

XCTAssertEqual(success, failure)

1 个答案:

答案 0 :(得分:1)

问题是您要比较的successfailure的类型不是Equatable

Result<Success, Failure>仅当EquatableSuccess都符合Failure时才符合Equatable。根据{{​​1}}的定义:

Result

因此,您将需要使用符合extension Result : Equatable where Success : Equatable, Failure : Equatable {} 的自定义Error类型,或通过首先提取成功(或失败)值来使用不同的方式比较两个值:

Equatable