我在几行代码中遇到了一些问题,这些代码还没有达到100 %。
if (object== null) {
errors.reject("some error");
} 项目使用Spring及其类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;
}
}
}
}发布于 2016-01-07 14:30:43
你为什么要得到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可能的分支。
真<<,这两个条件永远不会同时计算为真。 假/真 假=假 真=假
它只可能覆盖3的4分支。
https://stackoverflow.com/questions/34657563
复制相似问题