Je voudrais mocker une implémentation de la vue de MVC design pattern
. J'ai implémenté le MVP
(une autre variation MVC
), et je voudrais tester si les certaines méthodes dans la vue sont appelées correctement par le contrôleur quand un changement d'état se produit sur le modèle. Voici la séquence des appels de méthode sur les model
, controller
et view
.Comment se moquer de la vue dans le test d'intégration MVC en utilisant JUnit et EasyMock
Modèle:
model.setProperty("newProperty");
Controller:
@Override public void propertyChange(PropertyChangeEvent evt) { for (View view : views) { view.modelPropertyChange(evt); } }
Vue: Ce résultat à la vue d'être appelé comme:
@Override public void modelPropertyChange(PropertyChangeEvent evt) { if ("Property".equals(evt.getPropertyName())) { updateView(); } }
Question: Comment vérifier (en utilisant EasyMock
dans le test JUnit
), l'ordre attendu de la méthode (avec argument (s) valide (s)) exécution? Je m'attends à view.modelPropertyChange(evt)
pour être appelé et attendre view.isViewUpdated()
pour retourner true
sur l'objet view
. Comment puis-je dire cela dans mon test JUnit? S'il vous plaît aider!
Je reçois une erreur lorsque j'exécute EasyMock.verify (mockView): "Erreur d'attente lors de la vérification ..." – walters
Habituellement, vous pouvez dire à partir de la trace de la pile quel est le problème est. Le code ci-dessus indique à EasyMock de s'attendre à ce que "modelPropertyChange" soit appelé sur la vue avec un événement égal à "evt". Si vous obtenez une exception dans EasyMock.verify() qui indique généralement que la méthode n'a pas été appelée. – NamshubWriter