gin*_*eer 2 java testing unit-testing
我必须维护承包商的代码.它有这个"有趣"的片段:
String webServicesValue =
webResponse.substring(webResponse.indexOf("<" + fieldName + ">") +
fieldName.length() + 2,
webResponse.indexOf("</" + fieldName + ">"));
Run Code Online (Sandbox Code Playgroud)
我花了几分钟才明白他想要做什么.
它似乎是一个WTF代码,但我的同事建议,"如果没有破坏,请不要修复它." 我想知道这段代码是否会失败.它似乎工作到目前为止,我真的不能想到一个测试用例失败了.
谢谢,
是.如果响应中不存在"<fieldname>",它将抛出异常.具体来说,它将尝试调用webResponse.substring(fieldName.length()+ 1,-1);
"<fieldname />"将导致类似的问题,元素上的任何属性也会如此.
如果你得到"<fieldname> ... <fieldname> ... </ fieldName> ... </ fieldName>",你会得到错误的答案.
编辑:根据后续讨论,我会说应该重写此代码以使用正确的XML解析器...除非您/您的团队可以保证代码永远不必处理有问题的XML.XML只允许通过临时字符串操作处理太多有效(和无效)变体.
| 归档时间: |
|
| 查看次数: |
299 次 |
| 最近记录: |