Как протестировать метод, который считывает данные из файла Excel в Java?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как протестировать метод, который считывает данные из файла Excel в Java?

Сообщение Anonymous »


Изображение
На рисунке выше показан файл Excel, содержащий данные Facebook.

Класс FacebookDataExtraction считывает данные из файла Excel и сохраняет данные в виде списка объектов строк, как показано в коде.
Я использовал файл config.properties, чтобы получить путь к файлу. Содержимое файла config.properties: FILE_NAME=D:/Refreshed_data_daily/all_hue_posts_in_excel.xlsx.

Код: Выделить всё

public class FacebookDataExtraction {

//private static final String FILE_NAME="D:/Refreshed_data_daily/all_hue_posts_in_excel.xlsx";
private static final String SHEET_NAME="nextv54plus_actions";
XSSFWorkbook workbook;

public static void main(String[] args){

FacebookDataExtraction obj= new FacebookDataExtraction();
List displayList= new ArrayList();
displayList=obj.readFromExcel();
System.out.println("The Size of the list is:"+ displayList.size());
}

public List readFromExcel() {
List fbList= new ArrayList();
try
{
ReadPropertyFile data= new ReadPropertyFile("config.properties");
FileInputStream fin= new FileInputStream(data.getPropertyFor("FILE_NAME"));
workbook= new XSSFWorkbook(fin);
int sheetIndex=0;
for (Sheet sheet : workbook) {
readSheet(sheet,sheetIndex ++, fbList);}

}catch(FileNotFoundException e){
e.printStackTrace();
}
catch(IOException e){
e.printStackTrace();
}
return fbList;
}

private void readSheet(Sheet sheet, int sheetIndex , List fbList) {

if(SHEET_NAME.equals(sheet.getSheetName())){
workbook.removeSheetAt(sheetIndex);
return;
}
for (Row row : sheet){
if (row.getRowNum() > 0)
fbList.add(readRow(row));}

}

private FacebookFields readRow(Row row) {

FacebookFields record= new FacebookFields();
for (Cell cell : row) {
switch (cell.getColumnIndex()) {
case 0: record.setName(cell.getStringCellValue());
break;
case 1: record.setId(cell.getStringCellValue());
break;
case 2: record.setDate(cell.getStringCellValue());
break;
case 3: record.setMessage(cell.getStringCellValue());
break;
case 4: record.setType(cell.getStringCellValue());
break;
case 5: record.setPage(cell.getStringCellValue());
break;
case 6: record.setLikeCount(String.valueOf(cell.getNumericCellValue()));
break;
case 7: record.setCommentCount(String.valueOf(cell.getNumericCellValue()));
break;
case 8: record.setShareCount(String.valueOf(cell.getNumericCellValue()));
break;
}
}

return record;
}

public boolean containsData() {

List checkList= readFromExcel();
return !checkList.isEmpty() ;
}

}
Класс FacebookFields (здесь не показан) содержит методы set для извлеченных данных!
Как написать тестовый пример для метода readRow() или как проверить, содержит ли каждое поле столбца данные?

Подробнее здесь: https://stackoverflow.com/questions/331 ... le-in-java
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»