我想将 excel 文件中的测试数据与页面对象模型一起使用,代码如下:
TestData.java
public class TestData {
public void testData() throws Exception {
String filePath = "C:\\eclipes\\testdata\\testdata.xlsx";
FileInputStream fis = new FileInputStream(filePath);
XSSFWorkbook workbook = new XSSFWorkbook(fis);
//get cell data
XSSFCell data1 = workbook.getSheetAt(0).getRow(1).getCell(0); //A2
XSSFCell data2 = workbook.getSheetAt(0).getRow(2).getCell(0); //B2
在我的
Test.java
文件中
public class TestSample extends BaseClass {
@Test
public void tc_01() throws Exception {
String excelData1 = TestData.data1;
}
我错过了什么吗?
TestData 类不返回 data1 值。
或者我应该需要在 TestData 类中初始化 data1 和 2 吗?
是的,您似乎正在尝试从
data1
类访问 TestData
,而不对其进行初始化或提供任何访问它的方法。 TestData
类应该有一个返回数据的方法,您需要在测试中调用该方法来获取值。
以下是修改
TestData
类的方法:
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.IOException;
public class TestData {
private String filePath;
private XSSFWorkbook workbook;
public TestData(String filePath) throws IOException {
this.filePath = filePath;
FileInputStream fis = new FileInputStream(filePath);
this.workbook = new XSSFWorkbook(fis);
}
public String getData1() {
// Assuming the data is stored as a string in the cell
return workbook.getSheetAt(0).getRow(1).getCell(0).getStringCellValue();
}
public String getData2() {
// Assuming the data is stored as a string in the cell
return workbook.getSheetAt(0).getRow(2).getCell(0).getStringCellValue();
}
}
现在,在您的测试类中,您可以创建
TestData
的实例并使用 getData1
方法:
public class TestSample extends BaseClass {
@Test
public void tc_01() throws Exception {
TestData testData = new TestData("C:\\eclipes\\testdata\\testdata.xlsx");
String excelData1 = testData.getData1();
System.out.println(excelData1);
}
}
通过这种方式,您可以将从 Excel 文件读取数据的逻辑封装在
TestData
类中,并且可以通过创建 TestData
的实例并调用适当的方法,在测试类中轻松访问它。