누군가 @magentoDbIsolation 주석이 통합 테스트를 위해 무엇을하는지 설명 할 수 있습니까?


9

핵심 모듈을 위해 작성된 통합 테스트를 살펴보면 주석의 많은 인스턴스가 @magentoDbIsolation enabled테스트 기능 위에 나타납니다.

MTF 문서의 어느 곳에서도 이것에 대한 언급은 없으며, 살펴본 후에도 Magento\TestFramework\Annotation\DbIsolation그 목적에 대해서는 아직 명확하지 않습니다.

누구나 통찰력을 제공 할 수 있습니까? 감사.

답변:


17

이 주석이 지정되면 테스트 전에 DB 트랜잭션이 시작되고 그 후에 롤백됩니다. DB 픽스처를 사용하지 않고 테스트에서 DB에 무언가를 저장 한 경우 유용합니다. 참고 @magentoDataFixture필요 동시에 주석을 사용하지하기 때문에 또한 트랜잭션에서 테스트를 랩합니다.
그리고 완전성을 위해, 지정 @magentoDbIsolation disabled@magentoDbIsolation enabled테스트 클래스에 지정된 경우에만 유용합니다 .


2

주석은 @magentoDbIsolation통합 테스트에서 테스트로 작성된 DB 수정을 분리하는 데 사용됩니다. 다시 말해, 테스트를 실행하고 db를 변경하고 테스트 실행 중에 다른 세션의 db에서 이러한 데이터를 요청하는 경우 :

  • @magentoDbIsolation enabled당신 과 함께 라면 아무것도 얻지 못할 것입니다.
  • @magentoDbIsolation disabled데이터를 얻을 것이다, 원인 데이터가 격리되지 않습니다.
  • 주석이없는 통합 테스트는 비 절연 모드에서 실행됩니다.

imho, db 데이터를 변경하려면 @magentoDataFixture기본적으로 데이터 격리 를 사용하는 annotation을 사용하는 것이 좋습니다 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.