java - 测试用例使此代码失败?

标签 java unit-testing testing

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

String webServicesValue = 
  webResponse.substring(webResponse.indexOf("<" + fieldName + ">") + 
                        fieldName.length() + 2, 
                        webResponse.indexOf("</" + fieldName + ">"));

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

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

谢谢,

最佳答案

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

”将导致类似的问题,元素上的任何属性也是如此。

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

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

关于java - 测试用例使此代码失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1211027/

相关文章:

php - 如何对插入到 Laravel 5 中的 Eloquent 模型记录进行单元测试?

c# - 使用 Moq 使用内部构造函数模拟类型

java - getter getId() 的方法名称冲突

java - 输入/输出流是否在销毁时关闭?

java - Junit在Spring Boot中测试独立的Service层

testing - Raku:使用 prove6 时读取测试文件夹中的文件

testing - 使用 Selenium IDE 关闭弹出框

.net - NUnit GUI 运行程序和单元状态

java - 将信号从 .NET 应用程序传递到 Java 应用程序

java - 嵌套 Hashmap 覆盖其他键