Mocking Test em .NET 7: exemplo utilizando Moq, xUnit e Fluent Assertions

Renato Groffe
2 min readApr 24, 2023

--

Neste post apresento um exemplo de uso de Mock Objects em .NET 7, tomando como base um projeto criado originalmente em versões anteriores do .NET e detalhado em um artigo publicado há algum tempo aqui no blog:

Testes de Software com .NET 5: exemplos de utilização

A implementação em questão utilizou o Moq como alternativa para a manipulação de Mock Objects, além de se basear no xUnit e empregar ainda o framework Fluent Assertions. Já disponibilizei inclusive este exemplo no GitHub:

https://github.com/renatogroffe/DotNet7-Moq-xUnit-FluentAssertions_AnaliseCredito

Caso achem útil esta solução, peço por favor um ⭐️ no repositório apoiando. Fica também o convite para que vocês me sigam lá no GitHub!

Partindo da interface IServicoConsultaCredito:

E do enum StatusConsultaCredito e da classe Pendencia, construções utilizadas pela interface IServicoConsultaCredito:

Teremos o uso dessas estruturas pela classe AnaliseCredito:

E como poderíamos então gerar um objeto por meio da interface IServicoConsultaCredito, sem que contemos com uma implementação da mesma?

A resposta está no uso da classe genérica Mock (namespace Moq), disponibilizada pelo Moq para a criação de Mock Objects. A listagem seguinte exemplifica tudo isso, com a configuração de mapeamentos no construtor do tipo TestesAnaliseCredito e o uso de um Mock Object simulando as condições possíveis a serem tratadas por AnaliseCredito:

Esse exemplo foi apresentado em detalhes em uma live recente no Microsoft Reactor, com o conteúdo podendo ser assistido gratuitamente no YouTube:

--

--

Renato Groffe
Renato Groffe

Written by Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker

No responses yet