эффективное тестирование графов? - PullRequest
1 голос
/ 15 января 2020

Например, у меня есть график ниже, который показывает, что я сначала тестирую глубину. Я хочу попробовать сделать мои тесты там, где у меня уже есть график, а затем я делаю разные тестовые случаи для этого графика. Но в данный момент я, кажется, создаю новый график в каждом методе теста, который я делаю

@Test
void willItDepthFirst(){
        DepthFirstTraversal b = new DepthFirstTraversal();
        b.add(1);//add node
        b.add(0);
        b.add(2);
        b.add(3);
        b.add(4);
        b.add(0,1);//connect nodes with edges
        b.add(1,2);
        b.add(2,3);
        b.add(0,4);
        List<Integer> result = b.traverse();
        List<Integer> expected = Arrays.asList(0,1,4,2,3);

        assertEquals(expected, result);
}

Это своего рода идея того, что я хочу:

@Test
void graphToBeTested(){
        DepthFirstTraversal b = new DepthFirstTraversal();
        b.add(1);//add node
        b.add(0);
        b.add(2);
        b.add(3);
        b.add(4);
        b.add(0,1);//connect nodes with edges
        b.add(1,2);
        b.add(2,3);
        b.add(0,4);

}

@Test
void testCase1(){
        List<Integer> result = graphToBeTested().traverse();
        List<Integer> expected = Arrays.asList(0,1,4,2,3);

        assertEquals(expected, result);

}

1 Ответ

2 голосов
/ 15 января 2020

Если ваши тесты не нуждаются в изменении графика, вы можете сохранить его в элементе stati c и настроить его в методе @BeforeAll:

private static DepthFirstTraversal graph;

@BeforeAll
public static void setUpGraph() {
    graph = new DepthFirstTraversal();
    graph.add(1); //add node
    graph.add(0);
    graph.add(2);
    graph.add(3);
    graph.add(4);
    graph.add(0,1); //connect nodes with edges
    graph.add(1,2);
    graph.add(2,3);
    graph.add(0,4);
}

@Test
void testCase1(){
    List<Integer> result = graph.traverse();
    List<Integer> expected = Arrays.asList(0,1,4,2,3);

    assertEquals(expected, result);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...