我在Xcode中使用自动化工具。我想检查我使用HTTP连接时收到的响应。我不知道这是否可能。

这是我的代码:

- (void)readMe
{
    [HTTPConnection sendGetToUrl:[NSURL URLWithString:READ_ME_URL]
                          target:self
                        selector:@selector(readMeFinished:responseCode:)
                    failSelector:@selector(downloadFailed:)
                        userInfo:nil];
}

- (void)readMeFinished:(NSData *)recievedData
          responseCode:(NSString *)responseCode
{
    //If the response is a 200 OK.
    if ([responseCode isEqualToString:@"200"]) {
        // HERE, I WOULD LIKE TO DETECT IN AUTOMATION
        // THAT I'VE RECEIVED A 200 AND PASS THE TEST
    }
}

- (void)downloadFailed:(HTTPConnection *)connection {
    // HERE, I WOULD LIKE TO DETECT IN AUTOMATION THAT
    // THE DOWNLOAD HAS FAILED AND DON'T PASS THE TEST
}

最佳答案

自动化仪器无法进入您的Objective-C代码并检查结果。只能通过用户界面访问应用程序的状态。

因此,要检测您是否具有HTTP 200状态代码,可以使用不可见的标签以某种方式暴露该事实。那是将内部应用程序状态公开给自动化仪器的一种蛮力方式。

然而!...

我建议您测试一下网络连接成功完成后用户看到的内容。这是考虑如何使用自动化仪器的最佳方法。这是一个集成测试工具,旨在通过在屏幕上查找控件和文本的状态来测试用户看到的内容和体验。

您没有提供有关代码在应用程序中实际执行的操作的足够上下文,但是假设方法-readMe通过单击按钮向用户显示了用户必须阅读和批准的内容,我将在之后检查结果。告诉自动化系统像用户一样单击按钮。如果没有200状态代码,用户会看到什么?他们看到错误消息了吗?然后要断言网络代码成功,请检查以确保没有带有该错误消息的警报窗口。

10-08 04:38