Moq e propriedades virtuais e métodos
-
22-07-2019 - |
Pergunta
Eu estou usando Moq para testes de unidade. É pedir para MOQ para o trabalho, propriedades e metodos tem que ser marcado como virtual. Às vezes eu passar em dados e valores de propriedade situado no construtores. Não há uma regra que você não deve definir as propriedades virtuais em constrcutors uma vez que pode causar um comportamento inesperado (se a classe foi herdada de uma classe base), ou será que é seguro fazê-lo?
Solução
É, de fato um problema, e Visual Studio análise explicitamente verifica esta .
Uma solução simples para isso é para mover o trabalho para um membro interno não-virtual, e depois ter a chamada de método virtual que, assim como o construtor. Algo parecido com isto:
public class MyClass
{
public MyClass()
{
this.DoStuffInternal();
}
public virtual void DoStuff()
{
this.DoStuffInternal();
}
internal void DoStuffInternal()
{
// Interesting stuff happens here
}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow