Olá pessoal. Tudo certo?!
No último post, comecei a demonstrar os potenciais desse novo framework de isolamento da Microsoft – começando por Shims. Agora, mostro algo mais “no chão” – falarei sobre Stubs.
Vamos, novamente, recorrer a definição do msdn:
Stub types are one of two technologies that the Microsoft Fakes framework uses to let you easily isolate unit tests from the environment. When you generate a Fakes assembly in a test project, a stub type is created for each non-sealed class and interface in the target assembly that contains virtual or abstract methods, properties, or events. The stub type provides a default implementation for each virtual member and adds a delegate property that you can customize to provide the behavior that you want.
Ou seja, trata-se de um artifício desse framework para criação de Mocks/Stubs (Se não sabe a diferença, recomendo essa excelente explicação do @vquaiato)
É uma “alternativa” para o Moq.
Consideremos, novamente, o exemplo do último post:
Assumamos que IOutput tenha esse conteúdo:
O que desejamos testar?
Agora, vamos dar uma olhada no código dos testes:
O que podemos perceber?
Se você já está habituado com Moq, não sentirá vantagem alguma ao adotar Stubs do Microsoft Fakes. Entretanto, se não está habituado com frameworks semelhantes, encontrará aqui uma grande vantagem.
Stubs, diferente de Shims, não ocasionam prejuízos na performance dos testes.
O que você achou do Microsoft Fakes?!
Bem interessante Elemar, ta dizendo quem já tem familiaridade com o Moq não vale apena adotar o Microsoft Fakes?
E quem está começando a fazer testes assim, qual usar? Moq ou Microsoft Fakes?