Gunakan tes AssertJ Swing dari Mentimun

Saya memiliki pengujian unit sederhana untuk memastikan jendela utama aplikasi tidak diberi lapisan:

public class MainWindowUT extends AbstractMainWindowTest {

    @Test
    public void whenApplicationIsStarted_thenMainFrameIsUndecorated() {
        @SuppressWarnings("boxing")
        Boolean isUndecorated = GuiActionRunner.execute(() -> window.target().isUndecorated());
        assertThat(isUndecorated).isTrue();
    }
}

AbstrakMainWindowTest adalah:

public abstract class AbstractMainWindowTest extends AssertJSwingJUnitTestCase {

    protected FrameFixture window;

    @Override
    protected void onSetUp() {
        ScaleRuler frame = GuiActionRunner.execute(() -> new ScaleRuler());
        window = new FrameFixture(robot(), frame);
        window.show();
    }
}

ScaleRuler adalah bingkai saya, yang untuk saat ini tidak melakukan apa pun, cukup setUndecorated(true). Tes berjalan dengan baik. Bagaimana cara melakukan tes yang sama dari Mentimun?

public final class WindowAspectSteps {

    @Then("the main window should be undecorated")
    public void checkMainWindowIsUndecorated() {
        //????
    }
}

Saya mencoba membuat WindowAspectSteps untuk memperluas AbstrakMainWindowTest, tetapi variabel jendela tetap nol.


person Emil    schedule 02.06.2019    source sumber


Jawaban (1)


Anotasi @Before pada JUnit (@org.junit.Before) tidak berfungsi dengan Mentimun.
Mentimun memiliki sendiri @ Sebelum anotasi (@cucumber.api.java.Before) :

Faktanya, JUnit dan Cucumber sebenarnya adalah dua platform test runner yang berbeda sehingga memiliki test runner dan fasilitas terkaitnya sendiri (sementara beberapa di antaranya umum dalam hal logika).

Sebagai solusinya, coba tambahkan 2 anotasi @Before yang berbeda (junit dan mentimun) pada metode penyiapan kelas abstrak pengujian atau buat dua metode berbeda: satu dengan @cucumber.api.java.Before dan satu lagi dengan @org.junit.Before yang keduanya didelegasikan ke metode umum yang melakukan penyiapan pengolahan.

person davidxxx    schedule 02.06.2019