Tôi có ứng dụng web JPA/Hibernate/Spring/Tomcat với bộ nhớ cache dữ liệu cấp thứ hai được bật vì lý do hiệu suất. Và bộ nhớ cache hoạt động rất tốt!Bộ nhớ cache dữ liệu cấp 2 Hibernate và thử nghiệm tích hợp/chấp nhận
Tôi cũng có bộ kiểm tra Dưa chuột để thêm dữ liệu thử nghiệm trực tiếp vào cơ sở dữ liệu của ứng dụng và sau đó thực hiện một số bước Selenium. Tất nhiên nó không thành công vì ứng dụng không nhìn thấy các bản cập nhật vì bộ nhớ cache cấp 2. Tôi biết tôi có thể xây dựng đặc biệt để thử nghiệm với bộ nhớ cache bị vô hiệu hóa (bằng cách chuyển một số thuộc tính boolean cho Maven lọc hoặc tương tự) Nhưng có rất nhiều thực thể được chú thích @Cache để vô hiệu hóa bộ nhớ cache làm cho ứng dụng bị lỗi ngoại lệ "Thứ hai bộ nhớ cache mức không được kích hoạt ".
Một cách tiếp cận khác có thể là sử dụng tính năng truy cập từ xa ehcache để xóa bộ nhớ cache hoặc định cấu hình bộ nhớ cache với thời gian đối tượng bằng 0 hoặc tương tự.
Tôi cũng có thể tạo dữ liệu thử nghiệm bằng cách sử dụng giao diện người dùng ứng dụng nhưng điều này làm tăng thêm sự phức tạp không cần thiết đối với các trường hợp thử nghiệm.
Ai có thể chia sẻ cách tiếp cận của họ với các ứng dụng thử nghiệm tích hợp với bộ nhớ cache dữ liệu cấp 2 được bật không?
Không phải tất cả, nhưng một số thử nghiệm BDD của tôi có các bước sau: tạo dữ liệu kiểm tra, thực hiện các thao tác selen, dọn dẹp. Đồng ý với hộp màu đen, nhưng việc tạo và làm sạch dữ liệu bằng giao diện người dùng đôi khi rất khó và có thể thực hiện các kiểm tra phụ thuộc vào nhau (nếu giao diện người dùng liên quan đến tiết kiệm bị hỏng, tất cả các thử nghiệm khác cần lưu trữ cũng bị hỏng) – ike3
Có, các bài kiểm tra phụ thuộc sẽ thất bại, nhưng mục đích chính - một điều gì đó không thành công, được đáp ứng. Và nếu bạn điền trực tiếp dữ liệu vào DB, thì đây không phải là một bài kiểm tra chấp nhận, đây không phải là cách người dùng cuối làm việc với ứng dụng. Và các xét nghiệm như vậy ít nhiều là hạt thô. Nếu bạn cần nhiều hạt mịn hơn, đây có thể là một nơi tồi tệ cho Selenium. –