如何在JUnit中调用populateMapWithFormattedDates方法以及如何为此方法编写JUnit populateMapWithFormattedDates。我不知道如何为嵌套方法编写JUnit,因此非常有帮助。如何为此代码编写junit?
protected Map<String, String> populateDispatch(final RequestDispatchData requestDispatchData)
{
final Map<String, String> map = getDispatchFieldMapper().populateMapper(requestDispatchData);
populateMapWithFormattedDates(requestDispatchData, map);
}
private void populateMapWithFormattedDates(final RequestDispatchData requestDispatchData, final Map<String, String> map)
{
String dateFormatted = map.get("ticket_date");
Date date = null;
try
{
date = new SimpleDateFormat("MM/dd/yy").parse(dateFormatted);
}
catch (ParseException parseException)
{
customLogger.logMessage(diagnosticMethodSignature, DiagnosticType.EXCEPTION,
"Exception in parsing start date of ticket " + parseException);
}
map.put("startDateDDMMYY", DateEnum.DDMMYY.getFormattor().format(date));
map.put("startDateDDMMMYY", DateEnum.DDMMMYY.getFormattor().format(date));
map.put("startDateDMY", DateEnum.DMY.getFormattor().format(date));
map.put("startDateYYMMDD", DateEnum.YYMMDD.getFormattor().format(date));
}
如果你知道什么'private'关键字做,你必须知道你将无法在你的测试类中调用'populateMapWithFormattedDates'。你需要为'populateDispatch'编写测试,测试它所调用的所有私有方法。 – Mritunjay
我更喜欢的理论是单元测试应该测试一个类的公开可见的行为,这意味着你不需要为私有方法编写单元测试。 – ajb