【发布时间】:2017-12-18 12:38:26
【问题描述】:
由于 Twilio 可编程聊天 SDK 相当复杂,我有时会遇到难以在应用程序中复制的场景,因此我决定进行一些单元测试。
问题是,我无法初始化TwilioChatClient。你知道我做错了什么吗?
Xcode 调试控制台
Test Case '-[ONNTests.ONNTests testTwoClientCreation]' started.
0x7000065c6000 | 12/18/13:26:18.979 | FATAL | Chat-iOS | Error instantiating client framework path.
0x7000065c6000 | 12/18/13:26:18.980 | DEBUG | Chat-iOS | releasing chat client instance: <TwilioChatClient: 0x7fcf01552c20>
Podfile
target 'MyTests' do
pod 'TwilioChatClient', '~> 2.1.0'
end
代码
import XCTest
import TwilioChatClient
class MyTests: XCTestCase {
var client1: TwilioChatClient?
let e1 = XCTestExpectation(description: "Download Twilio token 1")
let e2 = XCTestExpectation(description: "Create client 1 successfully")
func testTwilioClientCreation() {
TwilioChatClient.setLogLevel(.debug)
getToken { [unowned self] token in
self.e1.fulfill()
TwilioChatClient.chatClient(withToken: token, properties: nil, delegate: self) { [unowned self] (result, client) in
if result.isSuccessful() {
self.client1 = client
self.e11.fulfill()
}
}
}
wait(for: [e1, e2], timeout: 20.0)
}
func getToken(completion: @escaping (_ token: String) -> Void) {
// ...
}
}
【问题讨论】:
-
这里是 Twilio 开发人员传道者。我对 iOS 中的测试不太了解,但我在内部询问过是否有其他人可以提供帮助。您是否在此测试中从外部服务中检索令牌?总的来说,这对我来说似乎很不稳定。此外,在测试中实例化一个完整的
TwilioChatClient也会建立到 Twilio 服务的各种连接。您可以考虑模拟 Twilio 服务本身吗? -
嗨@philnash 感谢您的回复。检索令牌对我来说工作正常。这似乎与项目设置、路径或类似内容有些复杂。我知道在测试中模拟这样的服务是一个好主意和常用方法,但我不是要测试我的应用程序,而是 Twilio 本身。我已经在 iOS 的可编程聊天 SDK 中发现了 3 个错误(它们已经在 GitHub 问题或您的支持票中),所以我只是想拥有一个能够轻松测试/复制一些复杂场景的环境(创建频道,邀请、接受、离开、删除等...)。
-
那我怕是没办法了,我只是对iOS中的测试还不够了解。感谢您帮助测试 SDK,我希望您发现的错误能够迅速为您修复。
标签: ios twilio twilio-programmable-chat