Pergunta

Aqui está minha situação.

Antes de meus testes serem executados, no beforesuite, eu instancio vários "objetos de ambiente". Esses objetos são criados com base no meu arquivo de configuração de ambiente.São meus testes que realmente usarão esses objetos de ambiente.O problema é como posso passá-los nos testes.

Seu primeiro impulso pode ser usar um provedor de dados, que passará os objetos corretos para o teste.O problema é que o provedor de dados terá que saber como se referir aos objetos corretos e depois passá-los.Da forma como está agora, os objetos do ambiente só podem ser referidos pelo nome (string -> objeto)

Minha outra opção é passar ao método de teste uma string que se refira aos objetos corretos.Mas isso tem o mesmo problema acima.

Ambas as opções criam muitas dependências e problemas.Também tenho que fazer muitas suposições sobre o tipo ao qual a chave se refere.

A maior parte desse problema decorre do fato de eu abusar do TestNG.O que eu realmente preciso é do meu próprio controlador que possa instanciar meu objeto de teste enquanto passa os objetos de ambiente apropriados.

Eu estava pesquisando a interface TestRunner do testng, mas não tenho certeza se isso funcionaria.

Toda e qualquer ajuda é apreciada.Érico

Foi útil?

Solução

Por que não usar uma mistura de @Factory e @DataProVider?

A fábrica será responsável por criar suas instâncias de teste e passar os parâmetros corretos: strings (nesse caso, o provedor de dados pode transformar essas seqüências em objetos) ou diretamente os objetos; nesse caso, seus testes podem usar esses valores diretamente .

Sinta -se à vontade para postar algum código se isso não ajudar a resolver seu problema.

- Cedric

Outras dicas

Eu tive uma situação semelhante e acabei usando propriedades Java.

Você pode usar a propriedade em seu código assim e passe as variáveis ​​para sua JVM com -Dmyproperty.value=hello.Eu usei-o para coisas como caminho do ambiente, URL do serviço, valor do tempo limite, etc.

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