Я пытаюсь проверить дату, которая находится в электронной таблице, созданной с помощью Apache POI. Когда я делаю System.out.print
, переменная Date и содержимое ячейки одинаковы. Почему тест не работает?JUnit Test Spreadsheet с использованием Apache POI
@Test
public void testSpreadsheetCont() throws Exception {
Date date = new Date();
boolean success = false;
FileInputStream fileInputStream = new FileInputStream("File Location.xls");
HSSFWorkbook workbook = new HSSFWorkbook(fileInputStream);
HSSFSheet worksheet = workbook.getSheetAt(0);
HSSFRow row1 = worksheet.getRow(2);
HSSFCell cell0 = row1.getCell(0);
System.out.println(cell0.getDateCellValue());
System.out.println(date);
if (cell0.getDateCellValue() == date) {
success = true;
} else {
success = false;
}
Assert.assertTrue(success);
}
Я думаю, что ошибка заключается в том, как я форматирую дату в классе, который генерирует электронную таблицу. Там он отформатирован как ("mm/dd/yyyy hh:mm")
. Но когда я форматирую переменную даты до ("mm/dd/yyyy hh:mm")
и пытаюсь сравнить два элемента, это не увенчалось успехом.
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat("mm/dd/yyyy hh:mm");
if (cell0.getDateCellValue().toString() == ft.format(date)) {
success = true;
} else {
success = false;
}
@eric. Поэтому вы решили свою проблему. Правильно? – Sankumarsingh
Нет, еще нет. Я добавил примечание наверху, где, по-моему, ошибка. –
если System.out.println (cell0.getDateCellValue()); и System.out.println (дата); все еще дает тот же результат, мое предложение конвертируется как в строку, так и затем сравнивает его. if (cell0.getDateCellValue(). ToString(). Equals (date.toString())) – Sankumarsingh