[JAVA] Comment se moquer de chaque cas avec Mockito 1x

Aperçu

Lors de l'utilisation de Mockito, j'ai toujours été cherché sur Google comment me moquer dans ce cas, mais j'ai décidé de le résumer car il est inefficace. Je veux vraiment utiliser JMockit, mais comme la magie noire est interdite, j'utilise Mockito.

supposition

Nous n'avons pas encore pu passer au 2ème système, donc Mockito1x est un prérequis. Mockito 1.10.19 JUnit 4.11 Java 1.8.0_151

Cas

Une chose à garder à l'esprit avec Mockito est que la méthode de simulation diffère selon que la valeur de retour de la méthode est nulle ou non. Sur cette base, nous l'avons classé dans les six catégories suivantes.

No Type de retour de la méthode de cible fictive Gamme Mock Opération simulée
1 Autre que nul L'ensemble Renvoie la valeur de retour spécifiée
2 Autre que nul L'ensemble Lancer une exception
3 void L'ensemble Lancer une exception
4 Autre que nul Seulement quelques méthodes Renvoie la valeur de retour spécifiée
5 Autre que nul Seulement quelques méthodes Lancer une exception
6 void Seulement quelques méthodes Lancer une exception

Au fait, le cas où la méthode privée, la méthode statique et l'objet dépendant sont générés par new est dans le cadre de PowerMock, donc j'écrirai un autre article. → Je l'ai écrit. Comment se moquer de chaque cas avec PowerMock + Mockito1x https://qiita.com/taka_22/items/27ea1fbf9c305ba83dcc

Comment rédiger un test

No.1 /**

No.2 /**

No.3 Le fait est que doThrow vient en tête.

/**

No.4 Si vous ne voulez vous en moquer qu'une partie, utilisez l'espion au lieu de vous moquer. Il est utilisé lorsque vous souhaitez modifier le comportement d'une méthode qui n'est pas testée et qui est appelée par la méthode à tester.

/**

// J'ai ajouté "bbb" à l'objet réel spiedList.add("bbb"); // Spy now get (0) renvoie "aaa" when(spiedList.get(0)).thenReturn("aaa");

// Le résultat est "aaa" assertThat((String)spiedList.get(0), is("aaa")); // D'autres méthodes renvoient de vrais résultats assertThat(spiedList.size(), is(1)); }

No.5 /**

// J'ai ajouté "bbb" à l'objet réel spiedList.add("bbb"); // Spy now get (0) lance RuntimeException when(spiedList.get(0)).thenThrow(new RuntimeException("aaa"));

	try {
		spiedList.get(0);
		fail();
	} catch(Exception e) {
		assertThat(e.getMessage(), is("aaa"));
	}

// D'autres méthodes renvoient de vrais résultats assertThat(spiedList.size(), is(1)); }

No.6 /**

// Ajoute "bbb" à l'objet réel spiedList.add("bbb"); // Lance une RuntimeException lorsque clear est appelé doThrow(new RuntimeException("aaa")).when(spiedList).clear();

	try {
		spiedList.clear();
		fail();
	} catch(RuntimeException e) {
		assertThat(e.getMessage(), is("aaa"));
	}

// D'autres méthodes renvoient de vrais résultats assertThat(spiedList.size(), is(1)); assertThat((String)spiedList.get(0), is("bbb")); }

référence

Mockito http://site.mockito.org/

Projet confirmé au travail

https://github.com/taka2/mockito-sample

Comment se moquer de chaque cas avec PowerMock + Mockito1x

https://qiita.com/taka_22/items/27ea1fbf9c305ba83dcc

Recommended Posts

Comment se moquer de chaque cas avec Mockito 1x
Comment se moquer de chaque cas avec PowerMock + Mockito1x
Comment écrire Mockito
Comment numéroter (nombre) avec html.erb
Comment mettre à jour avec activerecord-import
Comment démarrer avec Slim
Comment entourer n'importe quel caractère avec "~"
Comment utiliser mssql-tools avec Alpine
Comment démarrer Camunda avec Docker
Comment réaliser un téléchargement de fichiers volumineux avec TERASOLUNA 5.x (= Spring MVC)
Comment recadrer une image avec libGDX
Comment ajuster TextPosition avec l'extension de clavier iOS
Comment partager des fichiers avec Docker Toolbox
Comment compiler Java avec VsCode & Ant
[Java] Résumez comment comparer avec la méthode equals
[Android] Comment gérer les thèmes sombres
Comment utiliser BootStrap avec Play Framework
Comment changer d'images miniatures avec JavaScript
[Note] Comment démarrer avec Rspec
Comment faire un contrôle basé sur l'API avec cancancan
Comment réaliser le téléchargement de fichiers avec Feign
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Comment mettre à jour les modèles associés avec accepte_nested_attributes_for
Comment définir JAVA_HOME avec l'appassembler-maven-plugin de Maven
Comment implémenter TextInputLayout avec la fonction de validation
[Rails 5.x] Comment introduire des polices gratuites
Comment gérer les erreurs de connexion avec l'appareil
Comment supprimer des données avec une clé externe
Comment tester l'étendue privée avec JUnit
Comment surveiller nginx avec docker-compose avec datadog
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
Comment gérer les actifs de précompilation a échoué.
Comment réaliser le téléchargement de fichiers avec Feign
Comment exécuter Blazor (C #) avec Docker
Comment créer un environnement Rails 6 avec Docker
Comment télécharger Oracle JDK 8 rpm avec curl
[Java] Comment tester s'il est nul dans JUnit
Comment exécuter une méthode et simuler avec JUnit
Comment utiliser MyBatis2 (iBatis) avec Spring Boot 1.4 (Spring 4)
Comment enregistrer dans plusieurs tables avec une seule entrée
Comment tester les interruptions pendant Thread.sleep avec JUnit
Comment utiliser h2db intégré avec Spring Boot
Comment utiliser le framework Java avec AWS Lambda! ??
Comment créer plusieurs menus déroulants avec ActiveHash
Notes sur l'utilisation de chaque règle de JUnit
Comment utiliser l'API Java avec des expressions lambda
Comment démarrer avec Eclipse Micro Profile
Comment donner votre image à quelqu'un avec Docker
Comment tout insérer en même temps avec MyBatis
Comment écrire du code de test avec la certification de base
Comment créer une API avec GraphQL et Rails
Comment utiliser le protocole NFS version 2 avec Ubuntu 18.04