Я создаю графическую среду для целей обучения.Я использую подход 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);
}
Ладно, круто, это работает.Здесь есть только одна суть, я доказал, что функции работают только для этого случая.Тем не менее, на курсах по теории графов все, что я делаю, - это математическое доказательство теорем (индукция, противоречие и т. Д.)?Так есть ли хорошая практика для этого.Таким образом, мы проверяем устройство на правильность, а не проверяем его на один определенный результат.