首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试用例会导致此代码失败吗?

问测试用例会导致此代码失败吗?
EN

Stack Overflow用户
提问于 2009-07-31 06:52:15
回答 6查看 307关注 0票数 2

我必须维护来自承包商的代码。它有这个“有趣”的代码片段:

代码语言:javascript
复制
String webServicesValue = 
  webResponse.substring(webResponse.indexOf("<" + fieldName + ">") + 
                        fieldName.length() + 2, 
                        webResponse.indexOf("</" + fieldName + ">"));

我花了几分钟才明白他想做什么。

这似乎是一个WTF代码,但我的同事建议,“如果它没有损坏,就不要修复它。”我想知道这段代码是否会失败。到目前为止,它似乎还在工作,老实说,我想不出一个测试用例会失败。

谢谢,

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-07-31 07:00:53

是。如果响应中不存在"“,它将抛出异常。具体来说,它将尝试调用webResponse.substring(fieldName.length() + 1,-1);

"“将导致类似的问题,就像元素上的任何属性一样。

如果你得到“... ",你就会得到错误的答案。

编辑:根据后续讨论,我认为这段代码应该重写,以使用适当的XML解析器……除非您/您的团队可以保证代码永远不会处理有问题的XML。XML只是允许太多有效(和无效)的变体,无法通过即席字符串操作来处理。

票数 8
EN

Stack Overflow用户

发布于 2009-07-31 06:57:48

如果您收到<fieldname/>,会发生什么?

票数 6
EN

Stack Overflow用户

发布于 2009-07-31 08:33:37

与其手动解析XML,不如使用真正的XML解析器。有各种各样的角例很难用普通的字符串操作来覆盖。有了真正的解析器,它也会更具可读性。最好将XML数据视为二进制数据,特别是在考虑所有可能的字符编码时。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1211027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档