From 710182ff920d97b8f6bfdc6af8739486e4a6a79e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Gonz=C3=A1lez?= Date: Wed, 6 Jul 2016 09:36:46 +0200 Subject: [PATCH] Code for JMockit 101 (#479) * Add new module for mocks comparison. * Add sources for testing. * Changes on testCase. * Enter some tests for mockito. * More tests for Mockito. * Even more tests. * Add the rest of the mocking libraries. * Javadoc on test. * Test bare bones for EasyMock. * Fist kind of test and setup. * Add tests using EasyMock with a change on LoginService. * Create LoginControllerTest.java * Test setup * [JMockit] No method called test. * [JMockit] Two methods called test. * [JMockit] One method called test. * [JMockit] Exception mock test * [JMockit] Mocked object to pass around test. * [JMockit] Custom matcher test. * [JMockit] Partial mocking test. * [JMockit] Fix with IDE. * Not stubs. Mocks. MOCKS!!! * Remove unnecesary import. * Use correct encoding. Was having problems with buildings. * Remove failing module. * Create new module mocks and move mock-comparisons there. * Add jmockit module. * Add model class. * Add collaborator class. * Add performer class. * Add performer test. --- mocks/jmockit/README.md | 7 ++ mocks/jmockit/pom.xml | 68 +++++++++++++++++++ .../baeldung/mocks/jmockit/Collaborator.java | 10 +++ .../org/baeldung/mocks/jmockit/Model.java | 7 ++ .../org/baeldung/mocks/jmockit/Performer.java | 10 +++ .../baeldung/mocks/jmockit/PerformerTest.java | 30 ++++++++ .../mock-comparisons}/README.md | 0 .../mock-comparisons}/pom.xml | 13 ++-- .../mocks/testCase/LoginController.java | 0 .../org/baeldung/mocks/testCase/LoginDao.java | 0 .../baeldung/mocks/testCase/LoginService.java | 0 .../org/baeldung/mocks/testCase/UserForm.java | 0 .../mocks/easymock/LoginControllerTest.java | 0 .../mocks/jmockit/LoginControllerTest.java | 0 .../mocks/mockito/LoginControllerTest.java | 0 mocks/pom.xml | 20 ++++++ pom.xml | 8 ++- 17 files changed, 167 insertions(+), 6 deletions(-) create mode 100644 mocks/jmockit/README.md create mode 100644 mocks/jmockit/pom.xml create mode 100644 mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Collaborator.java create mode 100644 mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Model.java create mode 100644 mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Performer.java create mode 100644 mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/PerformerTest.java rename {mock-comparisons => mocks/mock-comparisons}/README.md (100%) rename {mock-comparisons => mocks/mock-comparisons}/pom.xml (90%) rename {mock-comparisons => mocks/mock-comparisons}/src/main/java/org/baeldung/mocks/testCase/LoginController.java (100%) rename {mock-comparisons => mocks/mock-comparisons}/src/main/java/org/baeldung/mocks/testCase/LoginDao.java (100%) rename {mock-comparisons => mocks/mock-comparisons}/src/main/java/org/baeldung/mocks/testCase/LoginService.java (100%) rename {mock-comparisons => mocks/mock-comparisons}/src/main/java/org/baeldung/mocks/testCase/UserForm.java (100%) rename {mock-comparisons => mocks/mock-comparisons}/src/test/java/org/baeldung/mocks/easymock/LoginControllerTest.java (100%) rename {mock-comparisons => mocks/mock-comparisons}/src/test/java/org/baeldung/mocks/jmockit/LoginControllerTest.java (100%) rename {mock-comparisons => mocks/mock-comparisons}/src/test/java/org/baeldung/mocks/mockito/LoginControllerTest.java (100%) create mode 100644 mocks/pom.xml diff --git a/mocks/jmockit/README.md b/mocks/jmockit/README.md new file mode 100644 index 0000000000..f5b0f5ae2b --- /dev/null +++ b/mocks/jmockit/README.md @@ -0,0 +1,7 @@ +========= + +## JMockit realated tutorials + + +### Relevant Articles: +- [JMockit 101](http://www.baeldung.com/jmockit-101) diff --git a/mocks/jmockit/pom.xml b/mocks/jmockit/pom.xml new file mode 100644 index 0000000000..8b03313a51 --- /dev/null +++ b/mocks/jmockit/pom.xml @@ -0,0 +1,68 @@ + + 4.0.0 + + + com.baeldung + mocks + 1.0.0-SNAPSHOT + ../pom.xml + + + jmockit + jmockit + + + 4.12 + 1.24 + + + 3.3 + 2.18.1 + + + + + junit + junit + ${junit.version} + test + + + + org.jmockit + jmockit + ${jmockit.version} + test + + + + + jmockit + + + src/main/resources + true + + + + + + org.apache.maven.plugins + maven-compiler-plugin + ${maven-compiler-plugin.version} + + 1.8 + 1.8 + + + + + org.apache.maven.plugins + maven-surefire-plugin + ${maven-surefire-plugin.version} + + + + + \ No newline at end of file diff --git a/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Collaborator.java b/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Collaborator.java new file mode 100644 index 0000000000..ef271b9aff --- /dev/null +++ b/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Collaborator.java @@ -0,0 +1,10 @@ +package org.baeldung.mocks.jmockit; + +public class Collaborator { + public boolean collaborate(String string){ + return false; + } + public void receive(boolean bool){ + //NOOP + } +} diff --git a/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Model.java b/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Model.java new file mode 100644 index 0000000000..54249dcd1d --- /dev/null +++ b/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Model.java @@ -0,0 +1,7 @@ +package org.baeldung.mocks.jmockit; + +public class Model { + public String getInfo(){ + return "info"; + } +} diff --git a/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Performer.java b/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Performer.java new file mode 100644 index 0000000000..4f8e8adb24 --- /dev/null +++ b/mocks/jmockit/src/main/java/org/baeldung/mocks/jmockit/Performer.java @@ -0,0 +1,10 @@ +package org.baeldung.mocks.jmockit; + +public class Performer { + private Collaborator collaborator; + + public void perform(Model model){ + boolean value = collaborator.collaborate(model.getInfo()); + collaborator.receive(value); + } +} diff --git a/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/PerformerTest.java b/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/PerformerTest.java new file mode 100644 index 0000000000..c99ae844c3 --- /dev/null +++ b/mocks/jmockit/src/test/java/org/baeldung/mocks/jmockit/PerformerTest.java @@ -0,0 +1,30 @@ +package org.baeldung.mocks.jmockit; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import mockit.*; +import mockit.integration.junit4.JMockit; + +@RunWith(JMockit.class) +public class PerformerTest { + + @Injectable + private Collaborator collaborator; + + @Tested + private Performer performer; + + @Test + public void testThePerformMethod(@Mocked Model model) { + new Expectations() {{ + model.getInfo();result = "bar"; + collaborator.collaborate("bar"); result = true; + }}; + performer.perform(model); + new Verifications() {{ + collaborator.receive(true); + }}; + } + +} diff --git a/mock-comparisons/README.md b/mocks/mock-comparisons/README.md similarity index 100% rename from mock-comparisons/README.md rename to mocks/mock-comparisons/README.md diff --git a/mock-comparisons/pom.xml b/mocks/mock-comparisons/pom.xml similarity index 90% rename from mock-comparisons/pom.xml rename to mocks/mock-comparisons/pom.xml index c5424d262d..692bfffd53 100644 --- a/mock-comparisons/pom.xml +++ b/mocks/mock-comparisons/pom.xml @@ -1,11 +1,16 @@ 4.0.0 - org.baeldung - mock-comparisons - 0.1-SNAPSHOT - mockito + + com.baeldung + mocks + 1.0.0-SNAPSHOT + ../pom.xml + + + mock-comparisons + mock-comparisons 4.12 diff --git a/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginController.java b/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginController.java similarity index 100% rename from mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginController.java rename to mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginController.java diff --git a/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginDao.java b/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginDao.java similarity index 100% rename from mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginDao.java rename to mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginDao.java diff --git a/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginService.java b/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginService.java similarity index 100% rename from mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginService.java rename to mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/LoginService.java diff --git a/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/UserForm.java b/mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/UserForm.java similarity index 100% rename from mock-comparisons/src/main/java/org/baeldung/mocks/testCase/UserForm.java rename to mocks/mock-comparisons/src/main/java/org/baeldung/mocks/testCase/UserForm.java diff --git a/mock-comparisons/src/test/java/org/baeldung/mocks/easymock/LoginControllerTest.java b/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/easymock/LoginControllerTest.java similarity index 100% rename from mock-comparisons/src/test/java/org/baeldung/mocks/easymock/LoginControllerTest.java rename to mocks/mock-comparisons/src/test/java/org/baeldung/mocks/easymock/LoginControllerTest.java diff --git a/mock-comparisons/src/test/java/org/baeldung/mocks/jmockit/LoginControllerTest.java b/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/jmockit/LoginControllerTest.java similarity index 100% rename from mock-comparisons/src/test/java/org/baeldung/mocks/jmockit/LoginControllerTest.java rename to mocks/mock-comparisons/src/test/java/org/baeldung/mocks/jmockit/LoginControllerTest.java diff --git a/mock-comparisons/src/test/java/org/baeldung/mocks/mockito/LoginControllerTest.java b/mocks/mock-comparisons/src/test/java/org/baeldung/mocks/mockito/LoginControllerTest.java similarity index 100% rename from mock-comparisons/src/test/java/org/baeldung/mocks/mockito/LoginControllerTest.java rename to mocks/mock-comparisons/src/test/java/org/baeldung/mocks/mockito/LoginControllerTest.java diff --git a/mocks/pom.xml b/mocks/pom.xml new file mode 100644 index 0000000000..ec02c255ef --- /dev/null +++ b/mocks/pom.xml @@ -0,0 +1,20 @@ + + 4.0.0 + + + com.baeldung + parent-modules + 1.0.0-SNAPSHOT + ../pom.xml + + + mocks + mocks + pom + + + mock-comparisons + jmockit + + + diff --git a/pom.xml b/pom.xml index 75281ce80d..f6dda4efd1 100644 --- a/pom.xml +++ b/pom.xml @@ -7,8 +7,12 @@ parent-modules pom + + + UTF-8 + + - apache-fop assertj core-java @@ -25,7 +29,7 @@ jooq-spring json-path mockito - mock-comparisons + mocks jee7schedule querydsl