- 类比较多时,先从最基本的类开始覆盖类的构造函数。构造函数有多个时,先覆盖无参数的构造函数,然后可以将新的含参构造函数赋给该对象。如:
NodeNetwork nnw=new NodeNetwork();
nnw = new NodeNetwork(nodelist);
应该一个类一个类的覆盖,并写上注释,各个击破。
- 别人给的类中的函数也要测试,自己应把该函数重新写一遍,然后断言预期结果是否相同(主要是为了提高变异检测率)。如:
Node[] nodes={node1,node2,node3};
StringBuilder builder = new StringBuilder();
for(Node currNode: nodes){
builder.append(String.format("{ (%s) ", currNode.getName()));
for(Path path: currNode.getPaths()){
builder.append(String.format(" --> (%s)", path.getDestinationNode().getName()));
}
builder.append(String.format("} %s ", "\n"));
}
assertEquals(nnw.toString(),builder.toString());
- 对于算法较为复杂,很难一下子算出结果的函数,可以在控制台中输出程序运行的结果,然后再根据结果进行比较。
prim=new Prim(NodeNetFactory.buildNetwork());
nnn=prim.findWholeCaravaneWithPrim();
//for(int i=0;i<7;i++)System.out.println(nnn.get(i).getName());
assertEquals(nnn.get(0).getName(),"V3");
assertEquals(nnn.get(1).getName(),"V1");
assertEquals(nnn.get(2).getName(),"V7");
assertEquals(nnn.get(3).getName(),"V2");