From 9873c70dc4e598380382490a1d0198b0c154198d Mon Sep 17 00:00:00 2001 From: "m.raheem" Date: Tue, 7 Jan 2020 21:28:46 +0200 Subject: [PATCH 1/2] modifying partialMocking() --- .../LoginControllerIntegrationTest.java | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/testing-modules/mocks/src/test/java/com/baeldung/jmockit/LoginControllerIntegrationTest.java b/testing-modules/mocks/src/test/java/com/baeldung/jmockit/LoginControllerIntegrationTest.java index 4dbe94991f..cb490926f8 100644 --- a/testing-modules/mocks/src/test/java/com/baeldung/jmockit/LoginControllerIntegrationTest.java +++ b/testing-modules/mocks/src/test/java/com/baeldung/jmockit/LoginControllerIntegrationTest.java @@ -130,30 +130,36 @@ public class LoginControllerIntegrationTest { }; } + @Test public void partialMocking() { - // use partial mock - final LoginService partialLoginService = new LoginService(); + + LoginService partialLoginService = new LoginService(); partialLoginService.setLoginDao(loginDao); loginController.loginService = partialLoginService; - final UserForm userForm = new UserForm(); + UserForm userForm = new UserForm(); userForm.username = "foo"; - // let service's login use implementation so let's mock DAO call - new Expectations() {{ - loginDao.login(userForm); - result = 1; - // no expectation for loginService.login + + new Expectations(partialLoginService) {{ + //let's mock loginDao#login() call + loginDao.login(userForm); result = 1; + + //no expectation for partialLoginService#login() so that real implementation is used + + //mocking partialLoginService#setCurrentUser() partialLoginService.setCurrentUser("foo"); }}; String login = loginController.login(userForm); Assert.assertEquals("OK", login); - // verify mocked call - new FullVerifications(partialLoginService) { - }; - new FullVerifications(loginDao) { + // verify that mocked partialLoginService#setCurrentUser("foo") is called + new Verifications() { + { + partialLoginService.setCurrentUser("foo"); + } }; + } } From 1beacb0ce8b4e57b45d82a9bb22f700631d6fa11 Mon Sep 17 00:00:00 2001 From: "m.raheem" Date: Wed, 8 Jan 2020 21:07:33 +0200 Subject: [PATCH 2/2] first review round changes --- .../jmockit/LoginControllerIntegrationTest.java | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/testing-modules/mocks/src/test/java/com/baeldung/jmockit/LoginControllerIntegrationTest.java b/testing-modules/mocks/src/test/java/com/baeldung/jmockit/LoginControllerIntegrationTest.java index cb490926f8..df3eeccca2 100644 --- a/testing-modules/mocks/src/test/java/com/baeldung/jmockit/LoginControllerIntegrationTest.java +++ b/testing-modules/mocks/src/test/java/com/baeldung/jmockit/LoginControllerIntegrationTest.java @@ -133,7 +133,6 @@ public class LoginControllerIntegrationTest { @Test public void partialMocking() { - LoginService partialLoginService = new LoginService(); partialLoginService.setLoginDao(loginDao); loginController.loginService = partialLoginService; @@ -142,24 +141,22 @@ public class LoginControllerIntegrationTest { userForm.username = "foo"; new Expectations(partialLoginService) {{ - //let's mock loginDao#login() call + // let's mock DAO call loginDao.login(userForm); result = 1; - //no expectation for partialLoginService#login() so that real implementation is used + // no expectation for login method so that real implementation is used - //mocking partialLoginService#setCurrentUser() + // mock setCurrentUser call partialLoginService.setCurrentUser("foo"); }}; String login = loginController.login(userForm); Assert.assertEquals("OK", login); - // verify that mocked partialLoginService#setCurrentUser("foo") is called - new Verifications() { - { - partialLoginService.setCurrentUser("foo"); - } - }; + // verify mocked call + new Verifications() {{ + partialLoginService.setCurrentUser("foo"); + }}; } }