gpt4 book ai didi

iphone - iPhone 样机网络服务

转载 作者:行者123 更新时间:2023-11-28 20:09:57 25 4
gpt4 key购买 nike

我想为 iPhone 制作一个应用程序,作为 ObjC 和 Cocoa 编程的介绍。我是 .net 开发人员,所以在 Mac 上编程对我来说是一个值得探索的全新世界 :)

我的应用程序将与网络服务对话。我想用 iCuke作为测试框架,我不想每次运行测试套件时都连接到该 Web 服务。那么我如何模拟一个 web 服务响应来进行测试呢?一种解决方案是使用 SoapUI ,但也许有一些不使用外部工具的解决方案。

最佳答案

我会在应用程序中围绕对网络服务的调用编写一个包装器。
伪代码示例

CallWebService (action, options,...) {
// Code for connectiong to Webservice
}

然后你就可以模拟那个函数,就像你想要的任何其他函数一样

CallWebService (action, options,...) {
return true;
}

这样您就可以模拟 Web 服务,而不必担心它是 Web 服务或数据库连接或其他任何东西。您可以让它返回 true 或其他任何内容。

祝你好运

更新

要将这个想法更进一步并使您的测试更加强大,您可以使用某种测试参数或环境参数来控制模拟关闭 web 服务方法中发生的事情。然后您可以成功地测试您的代码如何处理来自 Web 服务的不同响应。
再次在伪代码中:

CallWebService (action, options,...) {
if TEST_WEBSERVICE_PARAMETER == CORRUPT_XML
return "<xml><</xmy>";
else if TEST_WEBSERVICE_PARAMETER == TIME_OUT
return wait(5000);
else if TEST_WEBSERVICE_PARAMETER == EMPTY_XML
return "";
else if TEST_WEBSERVICE_PARAMETER == REALLY_LONG_XML_RESPONSE
return generate_xml_response(1000000);
}

和匹配的测试:

should_raise_error_on_empty_xml_response_from_webservice() {
TEST_WEBSERVICE_PARAMETER = EMPTY_XML;
CallWebService(action, option, ...);
assert_error_was_raised(EMPTY_RESPONSE_FROM_WEBSERVICE);
assert_written_in_log(EMPTY_RESPONSE_LOG_MESSAGE);
}
...

等等,你明白了。请注意,我所有的示例都是负面测试用例,但这当然也可以用于测试正面测试用例。

关于iphone - iPhone 样机网络服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3492419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com