Tôi có một bộ kiểm tra tích hợp. Tôi có một IntegrationTestBase
lớp cho tất cả các bài kiểm tra của tôi để mở rộng. Lớp cơ sở này có một phương thức @Before
( public void setUp()
) và @After
( public void tearDown()
) để thiết lập các kết nối API và DB. Những gì tôi đã làm chỉ là ghi đè hai phương thức đó trong mỗi testcase và gọi super.setUp()
và super.tearDown()
. Tuy nhiên, điều này có thể gây ra vấn đề nếu ai đó quên gọi siêu hoặc đặt sai vị trí và một ngoại lệ được ném và họ quên gọi siêu cuối cùng hoặc một cái gì đó.
Những gì tôi muốn làm là tạo setUp
và tearDown
các phương thức trên lớp cơ sở final
và sau đó chỉ cần thêm các phương thức @Before
và chú thích của riêng chúng ta @After
. Thực hiện một số thử nghiệm ban đầu có vẻ như luôn gọi theo thứ tự này:
Base @Before
Test @Before
Test
Test @After
Base @After
nhưng tôi chỉ lo ngại một chút rằng đơn hàng không được đảm bảo và nó có thể gây ra vấn đề. Tôi nhìn xung quanh và không thấy gì về chủ đề này. Có ai biết nếu tôi có thể làm điều đó và không có bất kỳ vấn đề?
Mã số:
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
thiếu mộtextends
?