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
}
}
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!
Inilah permintaan tarik: https://github.com/KentBeck/junit/pull/504
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.
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.