Co to jest poprawna adnotacja, ponieważ @SpringApplicationConfiguration i @WebIntegration jest przestarzała od Spring Boot Framework 1.4? Próbuję bawić się testami jednostkowymi.Co to jest poprawna adnotacja, ponieważ @SpringApplicationConfiguration, @WebIntegration, jest przestarzałe w Spring Boot Framework?
Odpowiedz
Spójrz w Javadocs nieaktualnych klasach:
* @deprecated as of 1.4 in favor of
* {@link org.springframework.boot.test.context.SpringBootTest} with
* {@code webEnvironment=RANDOM_PORT} or {@code webEnvironment=DEFINED_PORT}.
*/
...
@Deprecated
public @interface WebIntegrationTest {
* @deprecated as of 1.4 in favor of {@link SpringBootTest} or direct use of
* {@link SpringBootContextLoader}.
*/
...
@Deprecated
public @interface SpringApplicationConfiguration {
Jest tam również zamiennikiem TestRestTemplate()?
Tak, to jest tutaj:
* @deprecated as of 1.4 in favor of
* {@link org.springframework.boot.test.web.client.TestRestTemplate}
*/
@Deprecated
public class TestRestTemplate extends RestTemplate {
@Lisa Powinna być oznaczona jako poprawna odpowiedź. – Anand
można użyć @EnableAutoConfiguration lub @SpringBootApplication.
dla celów testowania można użyć @SpringBootTest (webEnvironment = 'swoją wartość') lub po prostu @SpringBootTest
patrz:
http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html
do testowania reszty, można użyć @ RestClientTest i skonfiguruj RestTemplateBuilder.
Należy użyć tej adnotacji:
@ContextConfiguration(classes = main_class)
To nie działa, ponieważ podczas testu integracji moja aplikacja nie może pobrać parametrów adresu URL bazy danych z pliku właściwości. –
Dobrym miejscem na rozpoczęcie jest teraz prawdopodobnie: Testing improvements in Spring Boot 1.4.
Opisują one podstawową próbkę tak:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
public class MyTest {
}
jako zamiennik do, jeden z wielu:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(MyApp.class)
@WebIntegrationTest
public class MyTest {
}
W jaki sposób wyższa wersja Ciebie wie, że ApplicationConfiguration jest w klasie MyApp.class? kiedy go zaimplementuję, nie załaduje aplikacjiContext – Nali
Dobre pytanie, nie wiem, ale może to być tylko jedna uruchomiona aplikacja na raz. – user1767316
@SpringBootTest (webEnvironment = WebEnvironment.MOCK) – Ulises
spojrzeć na https : //spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4 – Lu55