Pular para o conteúdo principal

Como mockar HttpClient em ASP.NET C#

Como tive dificuldade para mockar o HttpClient para fazer teste de unidade, vou postar as formas que encontrei para fazer tal tarefa. A primeira forma que encontrei para fazer isso está descrita no artigo C# - Unit testing classes with HttpClient dependence + using Autofixture.



Ela consiste em criar a sua própria classe HttpMessageHandler e HttpContent. Dessa maneira, você constroi o seu HttpClient com base nessas fake classes. Veja o código a seguir:


Para usar o HttpClient mockado, bastar fazer assim:


O método GenerateJsonArrayOfYourObjectString apenas transforma o objeto que você quer dar como retorno em um json em formato de string.

A segunda maneira que encontrei para mockar o HttpClient foi por meio da ferramenta MOQ. A fonte que explica como fazer isso se encontra no link Mocking an Asp.Net Core HttpClient for Unit Tests with Moq.

O código para realizar tal tarefa é o seguinte:



A classe MockHttpClient retorna um HttpClient mockado para você, mas para isso é preciso usar as using Moq e Moq.Protected.

No texto Unit Testing with the HttpClient você pode conferir 3 formas de mockar o HttpClient e, caso tenha interesse em entender mais sobre o framework Moq leia TDD : Introduction to Moq.



Comentários

Postagens mais visitadas deste blog

Curso Flutter | Aula 0 | Sobre o Curso

Fala galera! Me chamo Raul, tenho experiência com programação para Android usando Java e Kotlin. Como gostei bastante do novo SDK lançado pela Google para criar aplicativos para Android e iOS utilizando apenas um único código, resolvi aprender Flutter! Como sei que a melhor forma de aprender é ensinando, resolvi criar este curso. No exato momento em que escrevo esta postagem, ainda não sei nada de Flutter! Minha intenção é ir aprendendo e ir montando o curso à medida em que evoluo. Portanto, meu objetivo inicial aqui será organizar as ideias de como o curso será montado: quais tópicos serão abordado e por quais meios eles serão passados. O curso de Flutter a que proponho fazer será compartilhado gratuitamente de duas maneira: por este blog de maneira escrita e por vídeos no Youtube. Um meio complementará o outro. Além disso, o curso terá as seguintes aulas: Aula 1.0 - O que é e quais as características principais do Flutter? Aula 2.0 - Conhecendo a linguagem Dart Aul

Dicas para Freelancer

Neste post estou reunindo constantemente informações importantes para quem é ou deseja se tornar um freelancer. É importante escolher um nicho de mercado que passe pela seguinte intersecção: paixão + demanda + habilidade. Texto a ser lido:  Freelancer Android . Ferramentas para auxilar na escolha do nome do negócio: NameMesh , DomainR e DomainScope . Sites para registrar domínios: RegistroBr e GoDaddy . Sites de hospedagem com Wordpress: BlueHost e One .  Sites e apps de design para criar uma cover photo para sua página no Facebook (social media) e também criar currículos, logotipos e etc: Canva , Posteroid e Adobe Comp CC . Ferramenta para gerenciamento de tarefas: Asana . Dá para editar regras no Asana para os clientes, apenas poderem visualizar as informações. Banco de imagens gratuitas: Pexels  e Unsplash . Sites de Freelancer:  Workana , Crowd ,  Freelancer ,  99freelas , Fiverr , Upwork  e  GetNinjas . Melhor cobrar um preço por projeto em vez de por hora. Cob

Cursos Gratuitos de Flutter e Dart

Aqui você encontrará um repositório de cursos de Flutter e Dart gratuitos. A maioria dos cursos são em inglês. Cheguei a encontrar cursos gratuitos de Flutter em alemão na udemy, mas preferi não colocar nesta lista. Caso tenha mais sugestões de cursos gratuitos, por favor, escreva nos comentários deste post, que em breve acrescentarei a lista. Vamos estudar Flutter galera! ;) Build Native Mobile Apps with Flutter by Google (inglês) https://www.udacity.com/course/ud905 Dart Academy Boot Camp (inglês) https://da-bootcamp.firebaseapp.com/?course=start_programming_dart The Complete Flutter App Development Course for Android, iOS (inglês) https://www.udemy.com/the-complete-flutter-app-development-course-for-android-ios/ Meu mini-curso (português) http://raulfmiranda.blogspot.com/2018/10/curso-flutter-sobre-curso.html   Flutter Crash Course (inglês) https://fluttercrashcourse.com/ Learn Flutter - Beginners Course (inglês) https://www.udemy.com/learn-flutter-beginn