TestFX: есть ли способ включить модальный экземпляр в сцену? - PullRequest
0 голосов
/ 28 февраля 2019

Я пытался написать тест с TestFX, чтобы проверить, открыт ли модальный режим, но не может найти какие-либо методы для этого.

Ниже приведено представление, которое имеет openModal (), когданажата кнопка

class MainView : View("Hello TornadoFX") {
override val root = BorderPane()
init {
    with(root) {
        prefWidth = 1920.0
        prefHeight = 1080.0

        center {

            button("Login") {
                id = "Login"

                action {
                    find<LoginForm>().openModal()
                }
            }
        }
    }
}

}

Вот код TestFX

class MainViewTest: ApplicationTest() {

lateinit var primaryStage: Stage
private lateinit var loginButton: Button


@Before
fun setUpApplication() {
    primaryStage = FxToolkit.registerPrimaryStage()
    val mainView = MainView()

    interact {
        primaryStage.scene = Scene(mainView.root)
        primaryStage.show()
        primaryStage.toFront()
        loginButton = from(mainView.root).lookup("#Login").query()
    }
}

@Test
fun buttonLabelIsLogin() {
    Assertions.assertThat(loginButton).hasText("Login")
}

@Test
fun clickButtonToOpenModal() {
    clickOn(loginButton)
    //Thread.sleep(5000)
}

Когда тестовый код запускается clickButtonToOpenModal (), он вызывает ошибку ниже.

kotlin.KotlinNullPointerException

Я думаю, что мне нужно как-то добавить экземпляр LoginForm в primaryStage, но я не могу найти способ включить или добавить экземпляр дляopenModal ().

...