Tôi đã viết một giao diện MyInterface
, sẽ được triển khai bởi những người triển khai khác nhau.Lớp kiểm tra JUnit chung
Tôi cũng đã viết một lớp MyInterfaceTest
, chứa các phương pháp thử nghiệm chung mà tất cả người triển khai sẽ có thể sử dụng để kiểm tra việc triển khai của chúng.
Tôi chỉ không biết cách làm cho nó hoạt động như một bài kiểm tra JUnit.
Hiện nay, tôi có một cái gì đó như thế này:
public class MyInterfaceTest {
private static MyInterface theImplementationToTest = null;
@BeforeClass public static void setUpBeforeClass() throws Exception {
// put your implementation here:
theImplementationToTest = new Implementation(...);
}
@AfterClass public static void tearDownAfterClass() throws Exception {
theImplementationToTest = null;
}
@Test public void test1() { /* uses theImplementationToTest */ }
@Test public void test2() { /* uses theImplementationToTest */ }
}
tôi sử dụng phương pháp tĩnh setUpBeforeClass
vì khởi tạo của mỗi thực hiện phải mất rất nhiều thời gian, vì vậy tôi muốn khởi tạo nó một lần cho tất cả các bài kiểm tra.
Với phiên bản thử nghiệm này, người triển khai phải thay đổi mã số setUpBeforeClass
và tự triển khai.
Tôi chắc chắn rằng có một cách khác để viết MyInterfaceTest
, để người triển khai sẽ chỉ phải kế thừa hoặc gửi thông số và không thay đổi mã. Tuy nhiên, tôi không đủ kinh nghiệm trong JUnit để làm cho nó hoạt động. Bạn có thể vui lòng chỉ cho tôi cách thực hiện điều này không?
Điều đó giúp giải quyết vấn đề ban đầu như thế nào? –
Vấn đề ban đầu là gì? –
Cách sử dụng lại thiết lập/teardown tĩnh với việc triển khai thay đổi theo lớp con. Như được mô tả trong câu trả lời của tôi. –