O Moq é uma biblioteca popular para mocking em .NET. Versão 3.0 RTM foi liberada e está disponível para download.
A popularidade do Moq cresceu porque o mocking tem se tornado popular no .NET, em partes porque o Moq é feito para desenvolvedores que são novos com mocking ou podem estar escrevendo o próprio mock objects customizado. O Moq não usa o idioma record/reply clássico em vez disso permite definir expectativas comportamentais, muitas vezes através de expressões lambda e intercepta chamadas de mock objects usando Castle DynamicProxy.
O Moq 3.0 apresenta um novo release, com as seguintes mudanças notáveis:
- Suporte a Silverlight Um binário separado é disponível e está completamente compatível com o Silverlight.
- Nova sintaxe de levantamento de evento simplificada Exemplo: mock.Raise(foo => foo.MyEvent += null, new MyArgs(...));
- Suporte para signatures de evento customizados (não compatível com o EventHandler) Exemplo: mock.Raise(foo => foo.MyEvent += null, arg1, arg2, arg3);
- Melhoria do comportamento da property setter Exemplo: mock.VerifySet(foo => foo.Value = "foo");
- Amostra adicional do código da aplicação A aplicação ASP.NET MVC também atualizada pra trabalhar com a versão mais recente
- Melhor integração com o Pex Anteriormente, o Pex gastaria esforço analizando o código da biblioteca Moq, tentando entender os internals do Moq framework. Na release 3.0, os atributos do Pex tem usado para encerrar o monitoramento do Pex para certas áreas do Moq que não são relevantes para o código sob o teste.
Para ajudar a começar com Moq, procure a conveniente documentação de API ou encontre um dos muitos guias para iniciantes, como o do Justin Etheredge (C# MVP) na recente série Iniciando em Mocking com Moq 3.