Проблема заключается в том, что тип success
и failure
, который вы пытаетесь сравнить, не Equatable
.
Result<Success, Failure>
соответствует Equatable
только когда Success
иFailure
соответствует Equatable
.Из определения Result
:
extension Result : Equatable where Success : Equatable, Failure : Equatable {}
Таким образом, вам нужно будет использовать пользовательский тип Error
, который соответствует Equatable
, или использовать другой способ для сравнения двух значений путем первого извлечениязначение успеха (или неудачи):
switch (a, b) {
case let (.success(x), .success(y)):
XCTAssertEqual(x, y)
default:
XCTFail()
}