Comment vérifier si-déclaration de la méthode, à l'aide de Mockito et JUnit?

J'ai la méthode que je dois tester. Code (bien sûr, certaines parties ont été coupées):

public class FilterDataController {

    public static final String DATE_FORMAT = "yyyy-MM-dd";

    @Autowired
    private FilterDataProvider filterDataProvider;

    @ApiOperation(value = "Get possible filter data",response = ResponseEntity.class)
    @ApiResponses(value = {
            @ApiResponse(...),
            @ApiResponse(...)})
    @RequestMapping(path = "...", method = RequestMethod.GET)
    public ResponseEntity<Object> getPossibleFilterData(
            @RequestParam(value = "startDate") @DateTimeFormat(pattern=DATE_FORMAT) final Date startDate,
            @RequestParam(value = "endDate") @DateTimeFormat(pattern=DATE_FORMAT) final Date endDate) {
        if (endDate.compareTo(startDate) == -1){
            throw new ValueNotAllowedException("End date should be after or equal start date");
        }
        else {
            Date newEndDate = endDate;
            if (startDate.equals(endDate)){
                newEndDate = new Date(endDate.getTime() + TimeUnit.DAYS.toMillis(1) - 1);
            }

            List<String> possibleCountries = Lists.newArrayList(filterDataProvider.getPossibleCountries(startDate, newEndDate));

            return new ResponseEntity<>(new FilterResponse(possibleCountries),HttpStatus.OK);
        }
    }   
}

Question: comment faire pour vérifier si l'instruction dans la méthode getPossibleFilterData à l'aide de Mockito et JUnit? Je veux passer à l'égalité des dates à la méthode, puis vérifier que mon if fonctionne correctement.

  • Comme mentionné dans beaucoup de réponses ci-dessous, vos tests ne devriez pas supposer que votre mise en œuvre: que faire si vous refactoriser la méthode afin qu'il renvoie des valeurs correctes, mais n'utilise pas de if instruction à tous? Au lieu de supposer que, transmettre des valeurs erronées et passer le test uniquement lorsque vous attraper le bon d'exception.
  • merci pour les conseils.
InformationsquelleAutor Woland | 2016-10-11