簡體   English   中英

JUnit測試:測試一對與String相關的setter和getter時,它將引發java.lang.NullPointerException

[英]JUnit Testing: It throws java.lang.NullPointerException when testing a pair of String related setter and getter

這是我的課程,需要測試:

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");
}

}

運行測試時,它將引發異常: * .RankingTableModelTest.setFilePathAndGetFilePath(RankingTableModelTest.java:51)處的java.lang.NullPointerException 51是行號:test_model.setFilePath(file_path);

我的代碼有什么問題? 謝謝 :)

您從未實例化test_model

在某個地方,您將需要test_model = new RankingTableModel(); 或類似的東西。

您剛剛聲明了test_model:

private RankingTableModel test_model;

不,初始化它。

private RankingTableModel test_model = new RankingTableModel();

以上行將解決您的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM