Pergunta

Eu tenho tentado descobrir como executar testes parametrizados no Junit4 juntamente com o PowerMock. O problema é que, para usar o PowerMock, você precisa decorar sua aula de teste com

@RunWith(PowerMockRunner.class)

e para usar testes parametrizados que você deve decorar com

@RunWith(Parameterized.class)

Pelo que posso ver, eles parecem mutuamente excluídos!? Isso é verdade? Existe alguma maneira de contornar isso? Eu tentei criar uma classe parametrizada em uma classe executada com o PowerMock; algo assim:

@RunWith(PowerMockRunner.class)
class MyTestClass {
     @RunWith(Parameterized.class)
     class ParamTestClass {
          // Yadayada
     }
}

Mas infelizmente isso não faz muito bem ... o ParamTestClass Ainda não funciona com o suporte do Powermock (não é surpreendentemente tão surpreendente) ... e eu meio que fico sem idéias, então qualquer ajuda é muito apreciada!

Atualizar:Para futuros Googlers também veja: Usando o PowerMock sem o Runwith?

Foi útil?

Solução

Eu tive o mesmo problema. Infelizmente, não me deixou usar uma regra do PowerMock devido à JVM que eu tinha. Em vez da regra, usei o RunnerDelegate.

@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(Parameterized.class)

Outras dicas

Sim, isso funciona usando o PowerMock Regra Disponível se você usar o Junit 4.7+.

Você não pode usar dois corredores de classe de uma só vez, então definitivamente precisará escrever seu próprio corredor de teste para que isso aconteça.

Não sei nada sobre o PowerMock, mas após 10 segundos de pesquisa, parece que uma solução seria escrever um corredor de teste que usa o carregador de classe do PowerMock e executa testes parametrizados. Se você pode descobrir como delegar para o corredor de teste parametrizado em seu corredor de teste personalizado, essa pode ser a sua melhor aposta.

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