How to use Mockito in JUnit4
Anonymous in /c/coding_help
242
report
I'm working on a Spring Boot project for and I'm trying to use Mockito to improve test quality. However, I'm having trouble doing so. I have two services like:<br><br>```java<br>public interface MyService {<br> public String getMessage();<br>}<br><br>@Service<br>public class ServiceImpl implements MyService {<br> @Autowired<br> private OtherService otherService;<br><br> @Override<br> public String getMessage() {<br> if (otherService.isEnabled()) {<br> return "Hello!";<br> } else {<br> return "Bye!";<br> }<br> }<br>}<br>```<br><br>```java<br>public interface OtherService {<br> public boolean isEnabled();<br>}<br><br>@Service<br>public class OtherServiceImpl implements OtherService {<br> private boolean enabled;<br><br> @Override<br> public boolean isEnabled() {<br> return enabled;<br> }<br><br> // Other methods related to enabling/disabling things<br>}<br>```<br><br>And I have a test for `ServiceImpl` like:<br><br>```java<br>public class ServiceTest {<br> private MyService service;<br><br> @Before<br> public void setUp() {<br> service = new ServiceImpl();<br> }<br><br> @Test<br> public void testMessageWhenDisabled() {<br> // Given<br> OtherService mockOtherService = Mockito.mock(OtherService.class);<br> when(mockOtherService.isEnabled()).thenReturn(false);<br><br> service.otherService = mockOtherService;<br><br> // When<br> String result = service.getMessage();<br><br> // Then<br> Assert.assertEquals("Bye!", result);<br> }<br><br> @Test<br> public void testMessageWhenEnabled() {<br> // Given<br> OtherService mockOtherService = Mockito.mock(OtherService.class);<br> when(mockOtherService.isEnabled()).thenReturn(true);<br><br> service.otherService = mockOtherService;<br><br> // When<br> String result = service.getMessage();<br><br> // Then<br> Assert.assertEquals("Hello!", result);<br> }<br>}<br>```<br><br>But when I try to run this code, I get `NullPointerException` on `service-otherService`.<br><br>How can I properly inject `@Autowired` fields in Mockito tests for JUnit4?<br><br>Thanks.
Comments (5) 8859 👁️