Class ApplicationTest

  • All Implemented Interfaces:
    org.testfx.api.FxRobotInterface, ApplicationFixture

    public abstract class ApplicationTest
    extends org.testfx.api.FxRobot
    implements ApplicationFixture
    The base class that your JUnit test classes should extend from that interact with and/or verify the state of a JavaFX UI. Such test classes, containing one or more @Test-annotated methods (individual test cases), can interact with a JavaFX UI using the FxRobot methods that test class will inherit (as it extends ApplicationTest (this class) which extends FxRobot). Verifying the state of the UI can be accomplished by using either the Hamcrest based FxAssert.verifyThat(T, org.hamcrest.Matcher<? super T>) or the AssertJ based Assertions.assertThat(Node).

    Example:

    
     public class ColorSelectorTest extends ApplicationTest {
    
         Stage stage;
         ColorPicker colorPicker;
    
         {@literal @}Override
         public void start(Stage stage) throws Exception {
             this.stage = stage;
         }
    
        {@literal @}Before
         public void beforeEachTest() throws Exception {
             Platform.runLater(() -> {
                 colorPicker = new ColorPicker(Color.BLUE);
                 StackPane stackPane = new StackPane(colorPicker);
                 Scene scene = new Scene(root, 800, 800);
                 stage.setScene(scene);
                 stage.show();
             });
            WaitForAsyncUtils.waitForFxEvents();
         }
    
         {@literal @}Test
         public void shouldAllowUserToChangeColor() {
             // when:
             clickOn(colorPicker);
             type(KeyCode.DOWN);
             type(KeyCode.DOWN);
    
             // then:
             assertThat(colorPicker.getValue()).isEqualTo(Color.TEAL);
         }
     }
     
    • Constructor Summary

      Constructors 
      Constructor Description
      ApplicationTest()  
    • Method Summary

      Modifier and Type Method Description
      void init()  
      void internalAfter()  
      void internalBefore()  
      static void launch​(Class<? extends javafx.application.Application> appClass, String... appArgs)  
      void start​(javafx.stage.Stage stage)  
      void stop()  
      • Methods inherited from class org.testfx.api.FxRobot

        bounds, bounds, bounds, bounds, bounds, bounds, bounds, bounds, bounds, capture, capture, capture, capture, capture, capture, clickOn, clickOn, clickOn, clickOn, clickOn, clickOn, clickOn, clickOn, clickOn, clickOn, clickOn, closeCurrentWindow, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, drag, drag, drag, drag, drag, drag, drag, drag, drag, drag, drag, drop, dropBy, dropTo, dropTo, dropTo, dropTo, dropTo, dropTo, dropTo, dropTo, dropTo, dropTo, eraseText, from, from, from, fromAll, interact, interact, interactNoWait, interactNoWait, interrupt, interrupt, listTargetWindows, listWindows, lookup, lookup, lookup, moveBy, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, offset, offset, offset, offset, offset, offset, offset, offset, offset, point, point, point, point, point, point, point, point, point, press, press, push, push, release, release, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn, robotContext, rootNode, rootNode, rootNode, scroll, scroll, scroll, scroll, scroll, sleep, sleep, targetPos, targetWindow, targetWindow, targetWindow, targetWindow, targetWindow, targetWindow, targetWindow, targetWindow, type, type, window, window, window, window, window, window, write, write, write
      • Methods inherited from interface org.testfx.api.FxRobotInterface

        clickOn, clickOn, clickOn, clickOn, clickOn, clickOn, clickOn, clickOn, clickOn, clickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, doubleClickOn, moveBy, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, moveTo, offset, offset, offset, offset, offset, offset, offset, offset, offset, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn, rightClickOn