Você pode testar métodos estáticos de unidade?
Você pode testar métodos estáticos de unidade?
Anonim

Para teste de unidade você preciso pegar um pequeno pedaço de sua código, religue suas dependências e teste isoladamente. Isso é difícil com métodos estáticos , não apenas no caso de acessar o estado global, mas até mesmo E se eles apenas chamam outro métodos estáticos.

Considerando isso, como você testa métodos estáticos?

Existem quatro etapas fáceis na configuração de um teste que simula uma chamada estática:

  1. Use o executor PowerMock JUnit: @RunWith (PowerMockRunner.
  2. Declare a classe de teste da qual estamos zombando:
  3. Diga ao PowerMock o nome da classe que contém métodos estáticos:
  4. Configure as expectativas, dizendo ao PowerMock para esperar uma chamada para um método estático:

Da mesma forma, podemos simular métodos estáticos C #? 4 respostas. Moq (e outros baseados em DynamicProxy zombeteiro frameworks) são incapazes de zombar qualquer coisa que não seja virtual ou abstrata método . Alternativamente, você poderia refatorar seu projeto para abstrair chamadas para métodos estáticos , e fornecer essa abstração para sua classe por meio de injeção de dependência.

Com relação a isso, como você faz o teste de unidade de métodos privados?

Teste de unidade apenas a API disponível publicamente. Ao escrever testes de unidade , imitam o comportamento dos clientes do SUT. Não testar métodos privados . Qualquer teste de unidade indiretamente, usando a API pública, ou extraí-los em classes separadas e teste essas classes em vez disso.

O que é um método estático?

Em Java, um método estático é um método que pertence a uma classe em vez de uma instância de uma classe. o método é acessível a todas as instâncias de uma classe, mas métodos definidos em uma instância só podem ser acessados por aquele membro de uma classe.

Recomendado: