Saya memiliki Suite Tes Integrasi. Saya memiliki IntegrationTestBase
kelas untuk memperpanjang semua tes saya. Kelas dasar ini memiliki metode @Before
( public void setUp()
) dan @After
( public void tearDown()
) untuk membangun koneksi API dan DB. Apa yang saya lakukan hanyalah mengganti kedua metode di setiap testcase dan menelepon super.setUp()
dan super.tearDown()
. Namun ini dapat menyebabkan masalah jika seseorang lupa untuk memanggil super atau menempatkan mereka di tempat yang salah dan pengecualian dilemparkan dan mereka lupa memanggil super pada akhirnya atau sesuatu.
Yang ingin saya lakukan adalah membuat setUp
dan tearDown
metode pada kelas dasar final
dan kemudian hanya menambahkan metode @Before
dan penjelasan kita sendiri @After
. Melakukan beberapa tes awal tampaknya selalu memanggil dalam urutan ini:
Base @Before
Test @Before
Test
Test @After
Base @After
tapi saya hanya sedikit khawatir bahwa pesanan tidak dijamin dan itu bisa menyebabkan masalah. Saya melihat sekeliling dan belum melihat apa-apa tentang masalah ini. Adakah yang tahu kalau saya bisa melakukan itu dan tidak ada masalah?
Kode:
public class IntegrationTestBase {
@Before
public final void setUp() { *always called 1st?* }
@After
public final void tearDown() { *always called last?* }
}
public class MyTest extends IntegrationTestBase {
@Before
public final void before() { *always called 2nd?* }
@Test
public void test() { *always called 3rd?* }
@After
public final void after() { *always called 4th?* }
}
MyTest
hilang ituextends
?