Chúng ta có ứng dụng lớn được viết vào mùa xuân 3. Tôi cần viết hành vi kiểm tra kiểm tra JUnit của một số dịch vụ. Nó không phải là một đơn vị mà là một phần của một hệ thống. Có một số dịch vụ và kho lưu trữ cùng nhau làm việc với nhau -> rất nhiều đậu được tiêm bên trong. Ứng dụng này cũng sử dụng các khía cạnh.Thử nghiệm JUnit trong Spring - ghi đè và bỏ qua các hạt từ các lớp cấu hình ứng dụng khác
Câu hỏi của tôi là. Làm thế nào để quản lý cấu hình và đậu trong trường hợp thử nghiệm này? Tôi cần sử dụng các hạt được xác định trong cấu hình ứng dụng và trong các thử nghiệm chỉ xác định lại các hạt bằng cách sử dụng kiên trì để làm việc với một db được nhúng. Vì vậy, tôi cần phải sử dụng bean từ src khi chúng được định nghĩa và chỉ ghi đè lên một số rắc rối (bean bền bỉ, đậu bằng cách sử dụng webservices, ...) Trong gói thử nghiệm, tôi đã thực hiện lớp Config để định nghĩa bean cho persistence, sử dụng datasource cho hsql. Nhưng tôi không biết điều gì tiếp theo. Tôi đã cố gắng chú thích lớp Cấu hình thử nghiệm với:
@Configuration
@EnableAspectJAutoProxy
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ, proxyTargetClass = true)
@ComponentScan(basePackages = "com.example.our.app")
public class MyTestConfig implements TransactionManagementConfigurer {
để quét toàn bộ ứng dụng và sử dụng cấu hình của hạt từ thư mục src. Nhưng điều này cũng có cấu hình từ các thử nghiệm khác gây ra vấn đề. Đây có phải là toàn bộ chiến lược tốt hay không? Điều gì bây giờ - sử dụng excludeFilters để loại bỏ các cấu hình thử nghiệm khác? Hay chiến lược này là xấu?
cảm ơn
điểm Có tốt nhưng bạn sẽ phải để di chuyển cấu hình từ tệp applicationContext.xml sang java – vsingh