Pergunta

Eu tenho uma classe estática que envolve alguns métodos nativos de winspool:

public static class WinSpool
{
     [DllImport("winspool.drv")]
     public static extern int OpenPrinter(string pPrinterName, out IntPtr phPrinter, IntPtr pDefault);
     ...
     //some more methods here
}

Gostaria de zombar deles para testes de unidade, mas não conseguiu encontrar um padrão para isso. (Será que aulas de todos evitar estática?)

Foi útil?

Solução

Sim, classe estática é geralmente desaprovada na área de teste de unidade e zombando . AFAIK não open source zombando quadro (como Rhino Mocks ) zombeteiro classe estática apoio

Se você absolutamente e positivamente deve zombar classe estática, então eu com medo de que você deve ir para Typemock , que é não é livre.

Outras dicas

Microsoft produziu um quadro Fakes para o Visual Studio 2012 final, que permite tipos estáticos para ser ridicularizado usando calços. Calços são conjuntos "falsos" que fornecem delegados para todos os métodos acessíveis externamente. As chamadas são então encaminhadas através do filtro de eventos, e onde quer que o teste criou um dos seu delegado, o delegado lida com a chamada. Não que alguém quer incentivar tipos estáticos que não são tratados por meio de injeção de dependência. A direcção preferida é a afastar-se para a necessidade de calços e para a utilização de topos utilizando DI.

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