Pergunta

É possível alterar o acessório entre os métodos de teste?Se sim, como posso fazer isso?

Minha sintaxe para este problema:

No framework cakephp estou construindo testes para um comportamento que é configurado adicionando campos à tabela.Isso pretende funcionar da mesma maneira que a adição dos campos "criados" e "modificados" acelerará automaticamente esses campos em salvamento.

Para testar isso eu poderia crie dezenas de combinações de equipamentos/modelos para testar as diferentes configurações, mas seria cem vezes melhor, mais rápido e mais fácil apenas fazer com que o equipamento mudasse de "forma" entre os métodos de teste.

Se você não está familiarizado com o Estrutura CakePHP, talvez você ainda possa me ajudar enquanto usa Teste Simples

Editar:pergunta reformulada para ser mais geral

Foi útil?

Solução

Não estou familiarizado especificamente com o CakePHP, mas esse tipo de coisa parece acontecer em qualquer lugar com fixtures.

Não há pelo menos uma maneira embutida no rails para que isso aconteça, e imagino que não no cakePHP ou em qualquer outro lugar, porque toda a ideia de um fixture é que ele seja fixo

Existem duas soluções alternativas 'decentes' que conheço

  • Escreva um changefixture método, e pouco antes de fazer suas afirmações/etc, execute-o com os parâmetros do que alterar.Deve ir e atualizar o banco de dados ou o que precisa ser feito.

  • Não use fixtures e use algum tipo de fábrica de objetos ou gerador de objetos para criar seus objetos a cada vez

Outras dicas

Esta não é uma resposta à minha pergunta, mas uma solução para o meu exemplo de problema.

Em vez de usar vários fixtures ou alterar os fixtures, edito os arrays Model::_schema removendo os campos sem os quais eu queria testar.Isso faz com que o modelo atue como se os campos não existissem, mas não tenho certeza se este é um teste 100%.Não creio que seja para todos os casos, mas funciona para o meu exemplo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top