gpt4 book ai didi

java - 使用Apache POI的方法的Java单元测试

转载 作者:行者123 更新时间:2023-12-01 18:09:45 28 4
gpt4 key购买 nike

我在编写单元测试方面的经验为零,并且受命编写以下方法的简单测试:

public void getEventUsageValues() {

Properties props = new Properties();
List<String> eventCategory = new ArrayList<String>();
List<Integer> eventHits = new ArrayList<Integer>();
List<Integer> eventVisitors = new ArrayList<Integer>();

try {
FileInputStream inputStream = new FileInputStream("Path");
props.load(inputStream);
String excelFilePath = props.getProperty("EventUsage");
FileInputStream iStream = new FileInputStream(new File(excelFilePath));

Workbook workbook = new XSSFWorkbook(iStream);
Sheet firstSheet = workbook.getSheetAt(0);
Iterator<Row> iterator = firstSheet.iterator();
// Skips the header row
iterator.next();

// Iterate through the first sheet and get the cell values
while (iterator.hasNext()) {

Row nextRow = iterator.next();
Iterator<Cell> cellIterator = nextRow.cellIterator();

while (cellIterator.hasNext()) {

Cell cell = cellIterator.next();
int columnIndex = cell.getColumnIndex();

switch (columnIndex) {
case 0:
String category;
if ("".equals(cell.getStringCellValue())) {
category = "null";
} else {
category = cell.getStringCellValue();
}
eventCategory.add(category);
eventUsage.setCategory(eventCategory);
break;
case 1:
int hits = (int) cell.getNumericCellValue();
eventHits.add(hits);
eventUsage.setHits(eventHits);
break;
case 2:
int visitors = (int) cell.getNumericCellValue();
eventVisitors.add(visitors);
eventUsage.setVisitors(eventVisitors);
break;
}
}
}
inputStream.close();
iStream.close();
} catch (Exception e) {
}
}


上面的方法用于加载excel文件,然后将每个单元格中的值分配给字符串或整数,然后将其添加到相应的arraylist中。如上所述,我在编写测试方面的经验为零,所以我不确定应该从哪里开始。任何帮助将不胜感激。

最佳答案

请参阅创建和读取电子表格的示例:

package example;

import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;

import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.rules.TemporaryFolder;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.UUID;

import static org.apache.poi.xssf.usermodel.XSSFWorkbookType.XLSX;
import static org.junit.Assert.*;

@Ignore
public class PoiTest
{
@Rule
public TemporaryFolder folder= new TemporaryFolder(new File("target"));
@Test
public void xlsTest() throws Exception
{
File file = new File(folder.getRoot(), UUID.randomUUID() + ".xlxs");
String cellValue = UUID.randomUUID().toString();
try (XSSFWorkbook xls = new XSSFWorkbook(XLSX)) {
xls.createSheet("new sheet").createRow(0).createCell(0).setCellValue(cellValue);
try(OutputStream out = new FileOutputStream(file)) {xls.write(out);}
}
ByteArrayOutputStream baos = new ByteArrayOutputStream();
XSSFWorkbook xls = new XSSFWorkbook(file);
XSSFSheet worksheet = xls.getSheetAt(0);
assertEquals("cell value mismatch", cellValue, worksheet.getRow(0).getCell(0).getStringCellValue());
}
}

关于java - 使用Apache POI的方法的Java单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60488321/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com