作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为 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/
我是一名优秀的程序员,十分优秀!