专栏名称: 51Testing软件测试网
51Testing软件测试网,人气最旺的软件测试技术门户,提供软件测试社区交流,软件测试博客,人才服务,测试沙龙,测试杂志,测试资料下载等全方位信息服务,是国内最专业的软件测试就业培训、企业服务供应商...
目录
相关文章推荐
51好读  ›  专栏  ›  51Testing软件测试网

跨了个年回来,身边很多人都在补一门叫“测试覆盖率”的课!

51Testing软件测试网  · 公众号  · 测试  · 2020-01-06 17:30

正文

请到「今天看啥」查看全文


for (Iterator iter = this.classes.iterator(); iter.hasNext();) {
Class clzz = (Class) iter.next();
names[x++] = clzz.getName();
}
return names;
}

public Class getBaseClass() {
return baseClass;
}

public void setBaseClass(final Class baseClass) {
this.baseClass = baseClass;
}
}

如您所见,清单1的Hierarchy类包含一个 baseClass实例及其超类的集合。 在 HierarchyBuilder清单2中创建 Hierarchy通过两个重载类static 冠以方法buildHierarchy。

清单2.类层次结构构建器:

package com.vanward.adana.hierarchy;

public class HierarchyBuilder {

private HierarchyBuilder() {
super();
}

public static Hierarchy buildHierarchy(final String clzzName)
throws ClassNotFoundException {
final Class clzz = Class.forName(clzzName, false,
HierarchyBuilder.class.getClassLoader());
return buildHierarchy(clzz);
}

public static Hierarchy buildHierarchy(Class clzz) {
if (clzz == null) {
throw new RuntimeException("Class parameter can not be null");
}

final Hierarchy hier = new Hierarchy();
hier.setBaseClass(clzz);

final Class superclass = clzz.getSuperclass();

if (superclass !=
null && superclass.getName().equals("java.lang.Object")) {
return hier;
} else {
while ((clzz.getSuperclass() != null) &&
(!clzz.getSuperclass().getName().equals("java.lang.Object"))) {
clzz = clzz.getSuperclass();
hier.addClass(clzz);
}
return hier;
}
}
}

测试时间到了!


如果没有测试用例,关于测试覆盖率的文章将会是什么? 在清单3中,我定义了一个简单的晴天场景JUnit测试类,其中包含三个测试用例,它们试图同时使用 Hierarchy和HierarchyBuilder类:

清单3.测试HierarchyBuilder:

package test.com.vanward.adana.hierarchy;

import com.vanward.adana.hierarchy.Hierarchy;
import com.vanward.adana.hierarchy.HierarchyBuilder;
import junit.framework.TestCase;

public class HierarchyBuilderTest extends TestCase {

public void testBuildHierarchyValueNotNull() {
Hierarchy hier = HierarchyBuilder.buildHierarchy(HierarchyBuilderTest.class);
assertNotNull("object was null", hier);
}

public void testBuildHierarchyName() {
Hierarchy hier = HierarchyBuilder.buildHierarchy(HierarchyBuilderTest.class);
assertEquals("should be junit.framework.Assert",
"junit.framework.Assert",
hier.getHierarchyClassNames()[1]);
}






请到「今天看啥」查看全文