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)
答案 0 :(得分:1)
问题是您要比较的success
和failure
的类型不是Equatable
。
Result<Success, Failure>
仅当Equatable
和Success
都符合Failure
时才符合Equatable
。根据{{1}}的定义:
Result
因此,您将需要使用符合extension Result : Equatable where Success : Equatable, Failure : Equatable {}
的自定义Error
类型,或通过首先提取成功(或失败)值来使用不同的方式比较两个值:>
Equatable