Using @Mock and @InjectMocks
Your code works fine for me using Mockito 1.9.
Using an 1.8+ version of Mockito I get a very specific error message telling me exactly how to fix the problem. As php-coder suggests: For Mockito 1.8+ you need to initialize the field.
Did you see this or any other error message?
Edit:
The following code works for me. Small changes:
- Removed Spring annotations
- Removed Interface
- Added Getter
- Added empty
TaskService
- Added test with
System.out.println
Does it produce an error for you? :
Service:
public class ReportServiceImpl { private TaskService taskServiceImpl; public ReportServiceImpl() { } public ReportServiceImpl(TaskService taskService) { this.taskServiceImpl = taskService; } public void setTaskServiceImpl(TaskService taskServiceImpl) { this.taskServiceImpl = taskServiceImpl; } public TaskService getTaskServiceImpl() { return taskServiceImpl; }}
Dependency:
public class TaskService {}
Test, prints mockTaskService
:
@RunWith(MockitoJUnitRunner.class)public class ReportServiceImplTestMockito { @Mock private TaskService mockTaskService; @InjectMocks private ReportServiceImpl service; @Test public void testMockInjected() { System.out.println(service.getTaskServiceImpl()); }}