JUnit测试:在测试一对与String相关的setter和getter时抛出java.lang.NullPointerException

时间:2013-10-30 21:25:29

标签: java junit nullpointerexception

这是我需要测试的课程:

public class RankingTableModel {

/**
 * filePath stores the path of a csv file.
 */
private String filePath = "";

/**
 * table data represents all the data in the table cells.
 */
private Object[][] table_data;

public String getFilePath () {
    return filePath;
}

public void setFilePath (String filePath) {
    this.filePath = filePath;
}

这是我的JUnit测试类(对于@ Before,@ After,.etc,我没有做任何特别的事情,只是打印一些消息):

public class RankingTableModelTest {

private static final Object[][] data = {
            {"US", new Integer(1), new Integer(2), new Integer(2),
                new Integer(3)},
            {"UK", new Integer(2), new Integer(2), new Integer(1),
                new Integer(2)},
            {"CHN", new Integer(3), new Integer(1), new Integer(3),
                new Integer(1)},
        };

private static final String file_path = "test";

private RankingTableModel test_model;


@Test
public void setFilePathAndGetFilePath() {

    System.out.println("Testing setFilePath and getFilePath.");
    test_model.setFilePath(file_path);
    assertEquals(test_model.getFilePath(),"test");
}

}

当我运行测试时,它会抛出异常: 显示java.lang.NullPointerException     at * .RankingTableModelTest.setFilePathAndGetFilePath(RankingTableModelTest.java:51) 51是行数:test_model.setFilePath(file_path);

我的代码有什么问题?谢谢:)

2 个答案:

答案 0 :(得分:3)

您从未实例化test_model

在某个地方,您需要test_model = new RankingTableModel();或类似的东西。

答案 1 :(得分:2)

您刚刚声明了test_model:

private RankingTableModel test_model;

不,初始化它。

private RankingTableModel test_model = new RankingTableModel();

以上行将解决您的问题。