Junit4: @BeforeClass dari superclass tidak dieksekusi

Dibuat pada 6 Mar 2012  ·  7Komentar  ·  Sumber: junit-team/junit4

Bertentangan dengan pernyataan di @BeforeClass anotasi javadoc :
/** The <strong i="7">@BeforeClass</strong> methods of superclasses will be run before those the current class. */
Metode superclass beranotasi @BeforeClass tidak dipanggil jika ada @BeforeClass merupakan subclass.

public abstract class SuperTest {
    <strong i="13">@BeforeClass</strong>
    public static void beforeClass() throws Exception {
        fail("why don't you call me ?");    // never fails
    }
}

public class MyTestA extends SuperTest {
    <strong i="14">@BeforeClass</strong>
    public static void beforeClass() {
        fail("Thanks for calling");     // fails here
    }

    <strong i="15">@Test</strong>
    public void test() {
        fail("Failure expected from MyTestA.beforeClass()");  
    }
}

public class MyTestB extends SuperTest {
    <strong i="16">@BeforeClass</strong>
    public static void beforeClass() {
    }

    <strong i="17">@Test</strong>
    public void test() {
        fail("Failure expected from SuperTest.beforeClass()");    // fails here
    }
}

Komentar yang paling membantu

Metode di superclass dibayangi oleh metode dengan nama yang sama di subclass. Jika Anda memberi metode @BeforeClass nama yang berbeda, metode tersebut akan berjalan dalam urutan yang benar.

Semua 7 komentar

Metode di superclass dibayangi oleh metode dengan nama yang sama di subclass. Jika Anda memberi metode @BeforeClass nama yang berbeda, metode tersebut akan berjalan dalam urutan yang benar.

terima kasih taral, masalah diselesaikan kemudian. Sedikit menyebutkan di javadoc dari @BeforeClass bisa membantu.

Saya belajar hal yang sama dengan cara yang sulit. Seperti yang dikatakan @gonzen , sedikit penyebutan di javadoc dapat membantu kami menghindari situasi sama sekali. Jika masuk akal, saya dapat menambahkannya di javadoc dan mengirimkan tambalan.

@amalakar , tambalan javadoc pasti akan dihargai!

Gerakan mengungkap kekerasan seksual demi menghapuskannya.

Saya dengan ada beberapa catatan besar di: http://junit.sourceforge.net/javadoc/org/junit/Before.html mengatakan bahwa Anda harus melihat http://junit.org/javadoc/latest/ sebagai gantinya, + tautan ke dokumen baru dari readme.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat