JUnit中的参数类型不匹配

时间:2015-07-02 06:12:18

标签: java eclipse excel selenium junit

我对Selenium webdriver和Java相当新,之前我使用的是Selenium IDE。我试图从Excel工作表中读取testdata。然后将其写入Eclipse控制台,该控制台可以正常工作,并且应该用于执行实际测试,但这并不起作用。实际测试未执行,因为我得到错误参数类型不匹配。代码如下所示:

package Test_Excel;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Arrays;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

@RunWith(Parameterized.class)
public class TestWithExcelData {

    // Our two parameters
    private final int input;
    private final int resultExpected;

    // Constructor
    public TestWithExcelData(int input, int result) {
        this.input = input;
        this.resultExpected = result;
    }

    @Parameters
    public static Iterable<Object []> data() throws BiffException, IOException
    {

        String FilePath = "C://Selenium//workspace//testproject//src//testdata//TestData.xls";
        FileInputStream fs = new FileInputStream(FilePath);

        Object[][] object = new Object[6][2];
        Workbook wb = Workbook.getWorkbook(fs);
        //locate the excel file in the local machine

        Sheet sheet = wb.getSheet("IOResult");
        int i=1; //avoid header row
        while(!(sheet.getCell(0, i).getContents().equals("end"))) //read data till it reaches the cell whose text is ‘end’
        {

            object[i-1][0]=sheet.getCell(0, i).getContents();
            object[i-1][1]=sheet.getCell(1, i).getContents();
            System.out.print(sheet.getCell(0, i).getContents() + "\t");
            System.out.print(sheet.getCell(1, i).getContents() + "\t");
            System.out.println();
            i++;

        }
        return Arrays.asList(object);
    }

    @Test
    public void testSquareOff(){
        Assert.assertEquals(resultExpected, MathUtils.square(input));
    }
}

有人能指出我正确的方向吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

方法sheet.getCell(column, row).getContents()返回一个String,但构造函数需要int

您可以修改data()方法中的两行:

object[i-1][0] = Integer.valueOf(sheet.getCell(0, i).getContents());
object[i-1][1] = Integer.valueOf(sheet.getCell(1, i).getContents());