测试用例由于不在正确的屏幕中而失败

时间:2019-02-17 09:47:31

标签: swift xcode

我现在正在统一我的项目,我正在尝试统一我正在做的电话中的响应。

我在交互器中有此呼叫

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")

    }

由于这不是应用程序的第一个屏幕,因此该测试无法尝试使用所有元素启动屏幕,并且无法更改\修改任何元素。 我到处都在寻找我做错了什么或最好的方法来测试我想要的东西,但找不到任何东西。

我在做什么错了?

0 个答案:

没有答案