誰かが@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.