无法为Junit初始化textarea

时间:2014-09-02 08:26:29

标签: junit javafx textarea

Hello stackoverflow-ers

我正在为一个将文本添加到Javafx textarea的方法编写junit测试 - 这个textarea需要初始化以进行测试。在正常的课程中,我会使用

@FXML
private TextArea myTextArea;

对于textarea - 我如何为测试初始化​​它 - 这样我上面显示的方式不起作用

TextArea myTextArea = new TextArea();
设置中的

也不起作用。我在myTextArea中设置字符串的测试方法中的两行都得到了NullPointerException。有人有任何想法吗?我可能遗漏了一些明显的东西。

MyClassTest.java

@Test
public void testDisplay {
    MyClass myClass = new myClass();
    myClass.display();
}

MyClass.java

public void display() {
    myTextArea.setText("The result of this is ....");
}
  • MyClass是包含TextArea
  • 的fxml的控制器

我也用

@ClassRule
public JavaFXThreadingRule javafxRule = new JavaFXThreadingRule();

在我的代码中 - 但它仍无效

提前致谢

1 个答案:

答案 0 :(得分:1)

虽然,我不熟悉JavaFX中的JUnit测试,但是你无法做到这一点的最可能的原因是你的测试用例需要在JavaFX Application线程上并且你的控制器需要加载FXML以及写在其中的控件,然后才能获得对myTextArea的引用,这就是为什么你得到NullPointerException

有一些非常好的库可用于编写JavaFX的JUnit测试用例

还有this post讨论在JavaFX中编写测试用例