Ai đó có thể giải thích chú thích @magentoDbIsolation làm gì cho bài kiểm tra tích hợp không?


9

Nhìn qua các bài kiểm tra tích hợp được viết cho các mô-đun lõi, tôi thấy nhiều trường hợp chú thích @magentoDbIsolation enabledxuất hiện bên trên các hàm kiểm tra.

Không có đề cập đến điều này ở bất cứ đâu trong tài liệu MTF, và thậm chí sau khi nhìn vào Magento\TestFramework\Annotation\DbIsolationtôi vẫn không hoàn toàn rõ ràng về mục đích của nó.

Bất cứ ai có thể cung cấp một số cái nhìn sâu sắc? Cảm ơn.

Câu trả lời:


17

Nếu chú thích này được chỉ định, giao dịch DB sẽ được bắt đầu trước khi kiểm tra và quay lại sau nó. Điều này có thể hữu ích nếu không có đồ đạc DB nào được sử dụng và đôi khi được lưu vào DB trong thử nghiệm. Lưu ý rằng @magentoDataFixturecũng kết thúc kiểm tra trong giao dịch để không cần sử dụng đồng thời cả hai chú thích.
Và chỉ để hoàn thiện, việc chỉ định @magentoDbIsolation disabledchỉ hữu ích nếu @magentoDbIsolation enabledđược chỉ định trên một lớp kiểm tra.


2

Chú thích @magentoDbIsolationđược sử dụng trong các thử nghiệm tích hợp để cô lập các sửa đổi DB được thực hiện bởi các thử nghiệm. Nói cách khác, nếu bạn chạy thử nghiệm của mình và thực hiện một số thay đổi đối với db và trong quá trình thực hiện thử nghiệm, bạn yêu cầu những dữ liệu này từ db trong một phiên khác:

  • với @magentoDbIsolation enabledbạn sẽ không nhận được gì, khiến dữ liệu bị cô lập trong giao dịch.
  • với @magentoDbIsolation disabledbạn sẽ nhận được dữ liệu, khiến dữ liệu không bị cô lập.
  • không có bất kỳ kiểm tra tích hợp chú thích nào được thực hiện trong chế độ không bị cô lập.

imho, để thay đổi dữ liệu db, tốt hơn là sử dụng chú thích @magentoDataFixture, sử dụng cách ly dữ liệu theo mặc định.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.