Como você simula uma classe estática?
Como você simula uma classe estática?

Vídeo: Como você simula uma classe estática?

Vídeo: Como você simula uma classe estática?
Vídeo: Entendendo a Simulação e Simplificando o Modelo o Máximo Possível - Análise Estática Linear Aula#3 2024, Novembro
Anonim

Crie uma interface para DriverManager, zombar esta interface, injete-a por meio de algum tipo de injeção de dependência e verifique se zombar . Observação: quando você liga método estático dentro de um estático entidade, você precisa mudar o classe em @PrepareForTest. então, você precisa preparar o classe este código reside em.

Portanto, podemos simular métodos estáticos?

Mockito nos permite criar zombar objetos. Desde a método estático pertence à classe, não há como no Mockito métodos estáticos simulados . Contudo, nós podemos usar PowerMock junto com a estrutura Mockito para métodos estáticos simulados.

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.

Da mesma forma, as pessoas perguntam, podemos simular métodos estáticos usando MOQ?

Zombar de métodos estáticos Ferramentas gratuitas como Moq pode só zombar interfaces ou virtual / abstrato métodos em classes com um construtor público padrão. Se tu precisa verdadeiramente métodos estáticos simulados , tu precisa usar uma ferramenta comercial como Microsoft Fakes (parte do Visual Studio Enterprise) ou Typemock Isolator.

Por que os métodos estáticos são ruins?

No universo de OO métodos estáticos são anti-matéria. Eles não têm que ser mau , mas são perigosos, porque são usados incorretamente. Existem apenas duas situações quando métodos estáticos ou variáveis estão sendo usadas e não é uma abominação. Métodos estáticos são valiosos e válidos método de criação de objeto.

Recomendado: