Alguém pode explicar o que a anotação @magentoDbIsolation faz para um teste de integração?


9

Examinando os testes de integração escritos para os módulos principais, vejo muitas instâncias da anotação @magentoDbIsolation enabledaparecerem acima das funções de teste.

Não há menção a isso em nenhum lugar da documentação do MTF e, mesmo depois de olhar, Magento\TestFramework\Annotation\DbIsolationainda não estou muito claro quanto ao seu objetivo.

Alguém pode fornecer algumas dicas? Obrigado.

Respostas:


17

Se essa anotação for especificada, a transação do banco de dados será iniciada antes do teste e revertida após ela. Isso pode ser útil se nenhum equipamento de DB for usado e alguma coisa for salva no DB no teste. Observe que @magentoDataFixturetambém envolve o teste na transação, não sendo necessário usar as duas anotações simultaneamente.
E apenas por uma questão de integridade, a especificação @magentoDbIsolation disabledé útil apenas se ela @magentoDbIsolation enabledfoi especificada em uma classe de teste.


2

A anotação @magentoDbIsolationé usada em testes de integração para isolar modificações no banco de dados feitas por testes. Em outras palavras, se você executar o teste e fazer algumas alterações no db e durante a execução do teste, solicitar esses dados do db em outra sessão:

  • com @magentoDbIsolation enabledvocê não receberá nada, porque os dados são isolados na transação.
  • com @magentoDbIsolation disabledvocê obterá dados, porque os dados não são isolados.
  • sem nenhuma anotação, os testes de integração são executados no modo não isolado.

imho, para alterar dados db, é melhor usar anotações @magentoDataFixture, que usam isolamento de dados por padrão.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.