gpt4 book ai didi

java - 尝试使用 JUnit5 进行测试时出现 NullPointerException

转载 作者:行者123 更新时间:2023-12-01 20:20:27 26 4
gpt4 key购买 nike

所以我正在尝试测试这段代码:

@Test
public void faarFalse() throws IOException {
String filStiTilArrangementer = "src/main/java/gruppeeksamen/arrangementer.csv";
String filStiTilLoggetInn = "../../View/loggetInn.fxml";

ObservableList listeFor = FXCollections.observableArrayList();
dataHandler.hentDataHele(filStiTilArrangementer, listeFor);

navnPaaArrangement = "Test arrangement";
datoPaaArrangement = "2020-10-10";
typeIdrettPaaArrangement = "Ski";
leggTilArrangementController.leggeTilArrangementet(navnPaaArrangement, datoPaaArrangement, typeIdrettPaaArrangement, filStiTilArrangementer, filStiTilLoggetInn); //Line 148 ref. error message

ObservableList listeEtter = FXCollections.observableArrayList();
dataHandler.hentDataHele(filStiTilArrangementer, listeEtter);
assertTrue(listeFor.size() < listeEtter.size());

//fjernet linjen som er lagt til
RandomAccessFile f = new RandomAccessFile(filStiTilArrangementer, "rw");
long length = f.length() - 1;
byte b;
do {
length -= 1;
f.seek(length);
b = f.readByte();
} while(b != 10);
f.setLength(length+1);
f.close();
}

正在测试此代码:

public class LeggTilArrangementController {

@FXML
private Button btnGaaTilbake;

public void leggeTilArrangementet(String arrangement, String dato, String idrett, String filstienTilArrangementene, String filstienTilLoggetInn) {
//sjekker om alle "forhåndsregler" er gjort for å kunne legge til et arrangement
if (sjekkOmAlleInputErFyltUt(arrangement, dato, idrett) && sjekkOmdagensDatoErMindreEnnDatePicker(dato) && arrangementPaaSammeDatoIkkeFinnes(arrangement, dato.replace("-","."), idrett)){
//lager en ny linje med navnet på arrangementet, antall utøvere (som fra start skal være 0), utøvere (som fra start skal være tom), datoen (åååå.mm.dd), type idrett
String nyttArrangement = arrangement + ";0"/*antall utøvere*/ + ";" /*utøvere*/ + ";" + dato.replace("-",".") + ";" + idrett + "\n";
//prøver å legge til arrangementet på sisten av arrangementer.csv
try {
FileWriter filenSomSkalSkrivesTil = new FileWriter(filstienTilArrangementene, true);
filenSomSkalSkrivesTil.append(nyttArrangement);
filenSomSkalSkrivesTil.flush();
filenSomSkalSkrivesTil.close();
} catch (IOException e) {
e.printStackTrace();
}
//lukker nåværende vindu
goBack(filstienTilLoggetInn); //Line 76 ref. error message
} else {
MainJavaFX.visAlertFeilmelding("Mangler arrangement, dato eller idrett","Må fylle inn en av delene");
}
}


private void goBack(String filstienTilLoggetInn) {
Stage stage = (Stage) btnGaaTilbake.getScene().getWindow(); //Line 50 ref. error message
stage.close();
DataHandler.sendTilNyScene(filstienTilLoggetInn, "Arrengementer", 500, 500);
}
}

该测试应该测试是否已将新行写入 CSV 文件,但是当我尝试运行测试时,我得到的只是此消息:

java.lang.NullPointerException
at gruppeeksamen.Controller.LeggTilArrangementController.goBack(LeggTilArrangementController.java:50)
at gruppeeksamen.Controller.LeggTilArrangementController.leggeTilArrangementet(LeggTilArrangementController.java:76)
at gruppeeksamen.Controller.LeggTilArrangementControllerTest.faarFalse(LeggTilArrangementControllerTest.java:148)

有人知道为什么我会收到此错误消息吗?
PS:当我删除/注释第 76 行引用时。错误消息,测试一切正常,但程序将无法运行。

最佳答案

查看您突出显示的代码和行可能是由于以下两个原因之一造成的:

btnGaaTilbake.getScene()

btnGaaTilbake 为 null,或者方法 getScene() 正在重新调整为 null。请检查两个变量是否返回正确的值。

关于java - 尝试使用 JUnit5 进行测试时出现 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58938069/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com