À l'aide de @Mock et @InjectMocks

Je suis en train d'étudier la Mockito cadre et j'ai créé plusieurs cas de test à l'aide de Mockito.
Mais ensuite j'ai lu qu'au lieu de l'invocation de la maquette(SomeClass.classe), je peux utiliser les @Mock et la @InjectMocks - La seule chose que je dois faire est d'annoter ma classe de test avec @RunWith(MockitoJUnitRunner.class) ou utiliser le MockitoAnnotations.initMocks(this); dans le @Before méthode.

Mais il ne fonctionne pas - Il semble que le @Mock ne marchera pas!
Voici mes 2 codes de révisions - un en utilisant les annotations et l'autre sans.

Ce que je fais mal?

public class ReportServiceImplTestMockito {

    private TaskService       mockTaskService; //This is the Mock object
    private ReportServiceImpl service;

    @Before
    public void init(){
        service         = new ReportServiceImpl();
        mockTaskService = mock(TaskServiceImpl.class);
        service.setTaskServiceImpl(mockTaskService);
    }
///...

 Some tests
}

Comme je l'ai dit - ce de l'excellent travail.
Mais la suite de l'habitude:

@RunWith(MockitoJUnitRunner.class)
public class ReportServiceImplTestMockito {

     @Mock 
     private TaskService      mockTaskService;

     @InjectMocks 
     private ReportServiceImpl service;

         //Some tests
}

Et voici le ReportServiceImpl classe:

@Service
public class ReportServiceImpl implements ReportService {

    @Autowired
    private TaskService taskServiceImpl;

    public ReportServiceImpl(){}

    public ReportServiceImpl(TaskService taskService){
        this.taskServiceImpl = taskService;
    }

    public void setTaskServiceImpl(TaskService taskServiceImpl) {
        this.taskServiceImpl = taskServiceImpl;
    }
}

Ce qui me manque?

  • Semble OK pour moi, au premier coup d'œil. Ce qui se passe vraiment mal pour vous?
  • Êtes-vous sûr d'utiliser le bon importations ?
  • David - je suis un NullPointerException. Et Brice, je crois que je suis en utilisant le droit des importations - ici, ils sont 'import org.jmock.auto.Maquette; import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.MockitoAnnotations; import org.mockito.les coureurs.MockitoJUnitRunner;'
InformationsquelleAutor Noam | 2012-01-31