Tôi có một ứng dụng Khởi động mùa xuân với Spring Data Rest và tôi sử dụng @WebIntegrationTest
cùng với TestRestTemplate
trong các bài kiểm tra tích hợp của tôi. Các lớp cơ sở cho các cuộc thử nghiệm trông giống như sau:Khởi động mùa xuân @WebIntegrationTest và TestRestTemplate - Có thể quay lại các giao dịch thử nghiệm không?
@RunWith(SpringJUnit4ClassRunner.class)
@ActiveProfiles(profiles = "test")
@SpringApplicationConfiguration(classes = Application.class)
@Transactional
@TransactionConfiguration
@WebIntegrationTest("server.port: 0")
public abstract class IntegrationTest {
...
}
Tôi đã thử nghiệm việc tạo ra một thực thể bằng cách sử dụng các TestRestTemplate
để thực hiện một yêu cầu POST
tới một tài nguyên. Vấn đề là giao dịch mà vẫn tồn tại thực thể trên cơ sở dữ liệu không được khôi phục ngay cả khi các thử nghiệm của tôi được cấu hình để được giao dịch, vì vậy thực thể vẫn còn trên cơ sở dữ liệu sau khi thử nghiệm. Tôi hiểu rằng bởi vì các giao dịch được cuộn lại trong thử nghiệm không phải là cùng một sự kiên trì của thực thể.
Bây giờ câu hỏi của tôi là, có cách nào để quay lại các giao dịch được kích hoạt bởi các yêu cầu được thực hiện thông qua phương thức thử nghiệm RestTemplate
không?
tôi sẽ nói không, cách duy nhất sẽ tự xóa các mục thêm ... –
FYI: bạn có thể xóa một cách an toàn khai báo '@ TransactionConfiguration': nó không có hiệu lực ở đây. –