Spring boot Тестирование нескольких классов для API и хранилища - PullRequest
0 голосов
/ 11 февраля 2019

Я пишу тест для Spring Boot и у меня есть 2 класса, которые тестируют API и репозиторий.Ниже приведены скелеты,

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK)
@AutoConfigureMockMvc
public class AppointmentAPITest {


    /*
     * we need a system to simulate this behavior without starting a
     * full HTTP server. MockMvc is the Spring class that does that.
     * */
    @Autowired
    private MockMvc mockMvc;

    @MockBean
    private AppointmentAPI api;


    // now the tests are going on

}

Класс тестирования репозитория,

@ActiveProfiles("test")
@RunWith(SpringRunner.class)
@DataJpaTest
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
public class AppointmentRepositoryTest {


    @Autowired
    private TestEntityManager entityManager;

    @Autowired
    private AppointmentRepository repository;


    // write the test here 

}

Как использовать один класс для их запуска?Например, если класс будет AppointmentApplicationTests,

@RunWith(SpringRunner.class)
@SpringBootTest
public class AppointmentApplicationTests {

    @Test
    public void contextLoads() {

    }

}

Каков будет лучший способ настроить этот класс, чтобы он вызывал все тесты в API и классах репо?

1 Ответ

0 голосов
/ 11 февраля 2019

Я думаю, что самым простым способом было бы создать Suite для запуска набора тестов, например:

JUnit 4

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({
    some.package.AppointmentRepositoryTest,
    some.package.AppointmentApplicationTests
})
public class MySuite {
}

Junit5

@RunWith(JUnitPlatform.class)
@SelectClasses({some.package.AppointmentRepositoryTest,
    some.package.AppointmentAPITest.class})
public class JUnit5TestSuiteExample {
}

Однако это не всегда лучший способ сделать это.Также стоит ознакомиться с тем, как создать тестовый профиль для Maven Toe, выполнить несколько тестов или пакетов.

...