我正在创建一个用于学习目的的图形框架。我正在使用 TDD 方法,所以我正在编写很多单元测试。但是,我仍在弄清楚如何证明我的单元测试的正确性
比如我有这个类(不包括实现,我已经简化了)
public class SimpleGraph(){
//Returns true on success
public boolean addEdge(Vertex v1, Vertex v2) { ... }
//Returns true on sucess
public boolean addVertex(Vertex v1) { ... }
}
我也创建了这个单元测试
@Test
public void SimpleGraph_addVertex_noSelfLoopsAllowed(){
SimpleGraph g = new SimpleGraph();
Vertex v1 = new Vertex('Vertex 1');
actual = g.addVertex(v1);
boolean expected = false;
boolean actual = g.addEdge(v1,v1);
Assert.assertEquals(expected,actual);
}
好的,真棒,它的工作原理。这里只有一个症结,我已经证明这些功能只适用于这种情况。然而,在我的图论课程中,我所做的只是在数学上证明定理(归纳、矛盾等)。
所以我想知道有没有一种方法可以在数学上证明我的单元测试的正确性?那么有没有一个好的做法呢。因此,我们正在测试该单元的正确性,而不是针对某个特定结果对其进行测试。