gpt4 book ai didi

ios - 无法使用参数列表 ((ErrorType)、XMPPError) 调用 'XCTAssertEqual'

转载 作者:搜寻专家 更新时间:2023-10-30 22:08:35 24 4
gpt4 key购买 nike

在 MyModule 中,我有这个枚举:

enum MyError: ErrorType {
case failToSendMessage
case notAuthenticated
case noResponseReceived
}

在 MyModuleTests 中:

import XCTest
@testable import MyModule

class MyModuleTests: XCTestCase {
func testNotAuthenticated() {
myClass.doSomething()
.subscribeError { error in
XCTAssertEqual(error, MyError.notAuthenticated)
}
}
}

doSomething 返回一个 Observable

为什么我会收到此错误消息:无法使用参数列表 ((ErrorType)、MyError) 调用“XCTAssertEqual” ?

最佳答案

您应该为您的 MyError 添加符合 Equatable 的扩展。

extension MyError: Equatable
{
static func == (lhs: MyError, rhs: MyError) -> Bool {
switch (lhs, rhs) {
case (.failToSendMessage, .failToSendMessage):
return true;

case (.notAuthenticated, .notAuthenticated):
return true;

case (.noResponseReceived, .noResponseReceived):
return true;

default:
return false;
}
}
}

然后,断言您的错误非常简单。

if let error = result.error {
XCTAssertTrue(error == MyError.notAuthenticated,"API returns 403");
} else {
XCTFail("Response was not an error");
}

我.

关于ios - 无法使用参数列表 ((ErrorType)、XMPPError) 调用 'XCTAssertEqual',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39972512/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com