JUNIT与Excelinput数据

如何用excelinput数据做junit参数化testing。

Excel data: name age expectedOutput Ravi 32 1 Christiaan 29 2 Anuj 31 0 

我想根据excel标题名称在testing类中获取值。 在参数化类中,excel列的顺序必须与constructor.ex中的参数匹配:

 public testConstructor(String name,int age,int out){ //some code } 

假设如果我在excel中交换名称和年龄列,那么我必须改变testing类中的构造函数,如testConstructor(int age,String age,int out )。

如果列更改,那么我需要更改参数化testing类中的构造函数。 否则,我将得到名称值,将年龄variables和年龄值变为testing类中的名称variables。 如何获取基于标题名称的单元格值,并在testing类中更改构造函数参数?

在简易testing框架工作中:

 @RunWith(DataDrivenTestRunner.class) @DataLoader(filePaths={testData.xls} , loaderType=LoaderType.EXCEL) public class TestClass{ @Test public void simplTestMethod(@Param(name="name")String name , @Param(name="age")int age , @Param(name="expectedOutput")int expectedOutput){ ...............//your test conditions here } } 

如何在JUNIT中获得这个概念来获得标题名称上的值,而不会出现令人不安的构造函数?

我认为在setUp()方法testing之前从excel文件中获取实际数据会更好。 所以你可以在运行时获得列名和数据。 但在这种情况下,您将不得不手动迭代值。

ps看看ApachePOI框架与Excel文件一起工作。

让keyRows以第一个单元格中testing方法的名称开始,以下字段将用于参数名称映射。 所有包含行的testing数据必须以第一列中的空单元格开始。

只需在ExcelDataLoader.loadFromSpreadsheet()和ExcelDataLoader.initializeRowData()或文档中查看源代码即可。