JUnit时间线测试

时间:2018-04-07 13:38:35

标签: java junit properties timeline

我目前正在通过DoubleProperty和Timeline在JavaFX中移动Node。当我在窗口中显示它时,一切都按计划进行。但是,我需要运行一些JUnit 5测试。

以下是Gui和Junit类的简化版本。我已经尝试过了

- 使用while循环,检查时间轴的状态

- 在时间轴上设置一个监听器

- 使用Thread.sleep等待

public DoubleProperty x = new SimpleDoubleProperty(0);

public GuiClass(){ //Constructor
    KeyValue keyValueX = new KeyValue(x, 10);
    Timeline driveTimeline = new Timeline(
            new KeyFrame(Duration.millis(0)),
            new KeyFrame(Duration.millis(100), keyValueX)
            );
    driveTimeline.play();
}

的Junit:

class Junit {

    @Test
    void test() {

        GuiClass test = new GuiClass();
//Never finishes
//      while(test.driveTimeline.getStatus() != Animation.Status.STOPPED)
//      {
//          System.out.print(".");
//      }

//      test.driveTimeline.setOnFinished((pActionEvent) ->
//        {
//            System.out.println(test.x.get());
//         });      

    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
     System.out.println(test.x.get()); // Returns 0.0
}

我的问题是:如何让Junit等到时间轴完成?

附注:在我的原始程序中,时间线在完成时会产生几个函数,然后被置位。但时间表似乎永远不会完成。

谢谢!

0 个答案:

没有答案