Я новичок в Java & Junit, где я пытаюсь создать собственный класс соответствия, чтобы проверить метод "findValidDate" в классе DateValidationBO. Этот метод используется для изменения дат в формате дд / мм / гггг. Пожалуйста, посоветуйте мне получить ожидаемый результат в следующем формате "java.lang.AssertionError: Ожидаемый: Дата <24/03/2016>, но: фактическая дата была <24/03/2016>"
public class DateValidationBO {
public String findValidDate(String date) throws ParseException {
SimpleDateFormat dmy = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat mdy = new SimpleDateFormat("MM/dd/yyyy");
Date dat = mdy.parse(date);
return dmy.format(dat);
}
Код Junit
public class DateJUnit {
DateValidationBO dateValidationBO;
@Before
public void createObjectForCustomerBO() {
dateValidationBO = new DateValidationBO();
}
@Test
public void testFindValidDate() throws ParseException {
SimpleDateFormat sf = new SimpleDateFormat("MM/dd/yyyy");
String actual = dateValidationBO.findValidDate("12/1990/01");
assertThat(sf.parse(actual),DateChecker.dateChecker());
}
}
class DateChecker extends TypeSafeMatcher<Date> {
@Override
public void describeTo(Description desc) {
desc.appendText("Date is");
}
@Factory
public static Matcher<Date> dateChecker(){
return new DateChecker();
}
@Override
protected boolean matchesSafely(Date d) {
SimpleDateFormat sf = new SimpleDateFormat("dd/MM/yyyy");
if(d.equals(sf))
return true;
else
return false;
}
}