Da Twilio Programmable Chat SDK ziemlich komplex ist, stolperte ich manchmal in schwer zu replizierende Szenarien in der App, also entschloss ich mich, einige Komponententests durchzuführen. Das Problem ist, ich kann das TwilioChatClient
nicht initialisieren. Hast du eine Idee, was mache ich falsch?So testen Sie TwilioChatClient auf iOS mit Swift und CocoaPods
Xcode Debug-Konsole
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
-Code
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 Entwickler Evangelist hier. Ich bin nicht sehr informiert über Tests in iOS, aber ich habe intern gefragt, ob jemand anderes helfen kann. Erhalten Sie das Token von einem externen Dienst in diesem Test? Das scheint mir im Allgemeinen flockig zu sein. Wenn Sie einen vollständigen "TwilioChatClient" innerhalb eines Tests instanziieren, werden auch alle Arten von Verbindungen zum Dienst von Twilio aufgebaut. Können Sie den Twilio-Dienst selbst verspotten? – philnash
Hallo @philnash danke für deine Antwort. Das Abrufen des Tokens funktioniert gut für mich. Dies scheint eine Komplikation mit dem Projektaufbau, den Pfaden oder etwas ähnlichem zu sein. Ich weiß, dass es eine gute Idee und ein gemeinsamer Ansatz ist, solche Dienste im Test zu testen, aber ich versuche nicht, meine App zu testen, sondern Twilio selbst. Ich habe bereits 3 Bugs im Programmable Chat SDK für iOS gefunden (sie sind bereits auf GitHub Issues oder in Ihren Support Tickets), also versuche ich einfach eine Umgebung zu haben, in der ich einige komplexe Szenarien einfach testen/replizieren kann (create channel, einladen, annehmen, verlassen, löschen, etc ...). –
Dann kann ich nicht helfen Ich habe Angst, ich weiß einfach nicht genug über das Testen in iOS. Vielen Dank, dass Sie beim Testen des SDK geholfen haben. Ich hoffe, dass die gefundenen Fehler schnell behoben werden. – philnash