我遇到一些代码仍然达到100%的问题。
if (object== null) {
errors.reject("some error");
}
Project使用Spring Framework及其类org.springframework.validation.Errors
如何对此片段进行单元测试。
我无法测试的第二个片段就是这个。
for (int i = 0; i < model.getName().length(); i++) {
int x = (int) model.getName().charAt(i);
if (x < 33 || x > 126) {
errors.rejectValue("name", "some error");
break;
}
}
我希望有人能提供帮助:)
修改
public void validate() {
if (object== null) {
errors.reject("some error");
}
if (model.getName().equals("")) {
errors.rejectValue("name", "some error");
} else if (model.getName().length() < 6) {
errors.rejectValue("name", "some error");
} else if (model.getName().length() > 30) {
errors.rejectValue("name", "some error");
} else {
for (int i = 0; i < model.getName().length(); i++) {
int x = (int) model.getName().charAt(i);
if (x < 33 || x > 126) {
errors.rejectValue("name", "some error");
break;
}
}
}
}
答案 0 :(得分:0)
为什么要尝试获得100%的报道?
正如@engineer提到What is a reasonable code coverage % for unit tests (and why)?
似乎最可能的罪魁祸首是branch-coverage
。意味着不评估if条件(x < 33 || x > 126)
中的所有可能路径。这是不可能的,因为x
永远不会大于126
且小于33
。
通过像这样的if条件有4
个可能的分支。
true ||真&lt;&lt;这两个条件永远不会同时评估为真。
假||真
假||假
true ||假
只能覆盖3
个4
分支。