我现在正在统一我的项目,我正在尝试统一我正在做的电话中的响应。
我在交互器中有此呼叫
AWSDKAuthenticationService.authenticateConsumer(withUsername: sdkUsername, password: sdkPassword, consumerAuthKey: nil) {[weak self] (result, error) in
if (result != nil) {
guard let consumer = result as? AWSDKConsumer else {
NSLog("Unexpected authentication result")
return
}
isUserLoggedIn = true
completion(consumer)
} else {
errorHandle(WhiteLabeler.localizedStringForKey(key: "loginScreen_error_wrongUsername", comment: "-", defaultValue: "Wrong Username or Password"))
}
}
最终,它的Error会在演示者中调用一个函数,最终会在ViewController本身中调用一个函数, 应该会显示一个带有特定字符串的弹出对话框。
我抬头看,最好的统一方法是模仿失败或成功(在这种情况下为失败),并查看弹出窗口是否显示正确的文本。
这是我的测试用例:
func testOnLoginFailedTest () {
//should show wrong username or password in the activity
let loginViewController: LoginTableViewController = LoginTableViewController ()
let loginPresenter: LoginPresenter = LoginPresenter(controller: loginViewController)
loginPresenter.sdkErrorHandelingCallback(errorToDisplay: WhiteLabeler.localizedStringForKey(key: "loginScreen_error_wrongUsername", comment: "-", defaultValue: "Wrong Username or Password"))
let textOfAlert = loginViewController.errorMessageAlertText
XCTAssertEqual(textOfAlert, "Wrong Username or Password")
}
由于这不是应用程序的第一个屏幕,因此该测试无法尝试使用所有元素启动屏幕,并且无法更改\修改任何元素。 我到处都在寻找我做错了什么或最好的方法来测试我想要的东西,但找不到任何东西。
我在做什么错了?