资格赛总结

  1. 类比较多时,先从最基本的类开始覆盖类的构造函数。构造函数有多个时,先覆盖无参数的构造函数,然后可以将新的含参构造函数赋给该对象。如:
NodeNetwork nnw=new NodeNetwork();
nnw = new NodeNetwork(nodelist);

应该一个类一个类的覆盖,并写上注释,各个击破。

  1. 别人给的类中的函数也要测试,自己应把该函数重新写一遍,然后断言预期结果是否相同(主要是为了提高变异检测率)。如:
        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());
  1. 对于算法较为复杂,很难一下子算出结果的函数,可以在控制台中输出程序运行的结果,然后再根据结果进行比较。
        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");

你可能感兴趣的:(资格赛总结)