yaklaşım, bir dış sınıf uzanan iç sınıfları, aşağıdaki (benzer) çözeltisi kullanılır. Bu yapıyı kullanmaya devam ediyorum çünkü testlerin aynı yerde olduğunu ve bazı özellikleri ve yöntemleri paylaştığını ve her şeyin bana daha net geldiğini seviyorum. Ardından, Eclipse'i kullanarak, çalışmamda, "Seçili proje, paket veya kaynak klasöründeki tüm testleri çalıştır" seçeneğini seçiyorum ve tüm bu testler sadece bir tıklama ile gerçekleştirilecek. Bu testler daha sonra parametreli testleri ile aynı grubundaki olmamalı gibi
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);
}
}
}
geliyor. – Makoto
evet, bu benim aklıma gelen tek çözüm, ama gerçekten bir paketi, örneğin "ilgili" testleri sahip olmak ister bir test sınıf ... – centic