Trước khi tôi biết cách tiếp cận "@WunWith (Enclosed.class)", với các lớp bên trong mở rộng lớp ngoài. Tôi tiếp tục sử dụng cấu trúc này bởi vì tôi thích rằng các bài kiểm tra ở cùng một nơi và chia sẻ một số thuộc tính và phương pháp và mọi thứ dường như rõ ràng hơn với tôi. Sau đó, bằng cách sử dụng Eclipse, trong cấu hình chạy của tôi, tôi chọn tùy chọn đó "Chạy tất cả các kiểm tra trong dự án, gói hoặc thư mục nguồn đã chọn" và tất cả các kiểm tra này sẽ được thực hiện chỉ với một cú nhấp chuột.
public class TestBooksDAO {
private static BooksDAO dao;
@Parameter(0)
public String title;
@Parameter(1)
public String author;
@Before
public void init() {
dao = BooksDAO.getInstancia();
}
/** Tests that run only once. */
public static class SingleTests extends TestBooksDAO {
@Test(timeout=10000)
public void testGetAll() {
List<Book> books = dao.getBooks();
assertNotNull(books);
assertTrue(books.size()>0);
}
@Test(timeout=10000)
public void testGetNone() {
List<Book> books = dao.getBooks(null);
assertNull(books);
}
}
/** Tests that run for each set of parameters. */
@RunWith(Parameterized.class)
public static class ParameterizedTests1 extends TestBooksDAO {
@Parameters(name = "{index}: author=\"{2}\"; title=\"{0}\";")
public static Collection<Object[]> values() {
return Arrays.asList(new Object[][] {
{"title1", ""},
{"title2", ""},
{"title3", ""},
{"title4", "author1"},
{"title5", "author2"},
});
}
@Test(timeout=10000)
public void testGetOneBook() {
Book book = dao.getBook(author, title);
assertNotNull(book);
}
}
/** Other parameters for different tests. */
@RunWith(Parameterized.class)
public static class ParameterizedTests2 extends TestBooksDAO {
@Parameters(name = "{index}: author=\"{2}\";")
public static Collection<Object[]> values() {
return Arrays.asList(new Object[][] {
{"", "author1"},
{"", "author2"},
{"", "author3"},
});
}
@Test(timeout=10000)
public void testGetBookList() {
List<Book> books = dao.getBookByAuthor(author);
assertNotNull(books);
assertTrue(books.size()>0);
}
}
}
Có vẻ như những thử nghiệm đó không nên nằm trong cùng một bộ với các thử nghiệm được tham số hóa. – Makoto
vâng, đó là giải pháp duy nhất xuất hiện trong tâm trí của tôi, nhưng tôi thực sự muốn thử nghiệm "có liên quan" trong một bộ, ví dụ: tất cả các bài kiểm tra cho một lớp trong một bài kiểm tra ... – centic