Twilio Programmable Chat SDK는 매우 복잡하기 때문에 때로는 앱에서 복제하기 어려운 시나리오로 실행되기 때문에 일부 단위 테스트를하기로 결정했습니다. 문제는, TwilioChatClient
을 초기화 할 수 없다는 것입니다. 내가 뭘 잘못하고 있는지 생각해? Swift 및 CocoaPods를 사용하여 iOS에서 TwilioChatClient를 단조하는 방법
은 엑스 코드 디버그 콘솔
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
안녕하세요 @ philnash 귀하의 회신에 감사드립니다. 토큰을 가져 오는 것이 나를 위해 잘 작동합니다. 이것은 프로젝트 설정, 경로 또는 이와 유사한 몇 가지 복잡한 것으로 보입니다. 나는 테스트에서 이와 같은 서비스를 조롱하는 것이 좋은 생각이고 일반적인 접근법이라는 것을 알고 있지만, 내 애플 리케이션을 테스트하려고하는 것이 아니라 Twilio 그 자체이다. 이미 iOS 용 Programmable Chat SDK (GitHub 문제 또는 Support Ticket에 있음)에 버그가 3 개 발견되어 복잡한 시나리오를 쉽게 테스트/복제 할 수있는 환경을 구축하고 있습니다 (채널, 초대, 수락, 떠남, 삭제 등). –
그럼 내가 두려워 할 수는 없지만, iOS에서 테스트하는 것에 대해 충분히 알지 못합니다. SDK 테스트를 도와 주셔서 감사합니다. 찾으시는 버그가 신속하게 해결되기를 바랍니다. – philnash