2016-09-09 35 views
41

Chú thích thích hợp là gì kể từ @SpringApplicationConfiguration và @WebIntegration không được dùng như Spring Boot Framework 1.4? Tôi đang cố gắng chơi thử nghiệm đơn vị.Chú thích thích hợp từ @SpringApplicationConfiguration, @WebIntegration, không được chấp nhận trong Spring Boot Framework là gì?

+4

@SpringBootTest (webEnvironment = WebEnvironment.MOCK) – Ulises

+0

Hãy xem tại https : //spring.io/blog/2016/04/15/testing-improvements-in-spring-boot-1-4 – Lu55

Trả lời

30

Hãy xem vào JavaDocs của các tầng lớp phản đối:

* @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 { 

cũng Có một sự thay thế cho TestRestTemplate()?

Vâng, ở đây là:

* @deprecated as of 1.4 in favor of 
* {@link org.springframework.boot.test.web.client.TestRestTemplate} 
*/ 
@Deprecated 
public class TestRestTemplate extends RestTemplate { 
+1

@Lisa Nên được đánh dấu là câu trả lời chính xác. – Anand

8

bạn có thể sử dụng @EnableAutoConfiguration hoặc @SpringBootApplication.

cho mục đích thử nghiệm, bạn có thể sử dụng @SpringBootTest (webEnvironment = 'giá trị của bạn') hoặc đơn giản là @SpringBootTest

vui lòng tham khảo:

http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-testing.html

để thử nghiệm REST, bạn có thể sử dụng @ RestClientTest và cấu hình một RestTemplateBuilder.

0

Bạn nên sử dụng chú thích này:

@ContextConfiguration(classes = main_class) 
+0

Điều này không hoạt động như trong khi thử nghiệm tích hợp, ứng dụng của tôi không thể lấy các tham số URL cơ sở dữ liệu từ tệp thuộc tính. –

14

Một nơi tốt để bắt đầu là bây giờ có lẽ: Testing improvements in Spring Boot 1.4.

Họ mô tả một mẫu cơ bản như sau:

@RunWith(SpringRunner.class) 
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT) 
public class MyTest { 
} 

như một sự thay thế cho, một trong nhiều:

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(MyApp.class) 
@WebIntegrationTest 
public class MyTest { 
} 
+1

Phiên bản trên của bạn biết rằng ApplicationConfiguration nằm trong lớp MyApp.class như thế nào? khi tôi thực hiện nó theo cách của bạn nó không tải ứng dụngContext – Nali

+0

Câu hỏi hay, tôi không biết nhưng nó có thể là chỉ có một ứng dụng runing tại một thời điểm. – user1767316

Các vấn đề liên quan