इससे पहले कि मैं के बारे में "@RunWith (Enclosed.class)" पता था कि दृष्टिकोण, मैं निम्नलिखित (समान) समाधान बाहरी वर्ग का विस्तार इनर क्लासों के साथ प्रयोग किया,। मैं इस संरचना का उपयोग करता रहता हूं क्योंकि मुझे लगता है कि परीक्षण एक ही स्थान पर हैं और कुछ गुणों और विधियों को साझा करते हैं और चीजें मुझे स्पष्ट लगती हैं। फिर, मेरे रन कॉन्फ़िगरेशन में ग्रहण का उपयोग करके, मैं उस विकल्प को चुनता हूं "चयनित प्रोजेक्ट, पैकेज या स्रोत फ़ोल्डर में सभी परीक्षण चलाएं" और ये सभी परीक्षण केवल एक क्लिक के साथ किए जाएंगे।
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);
}
}
}
ऐसा लगता है कि उन परीक्षणों को पैरामीटर परीक्षणों के समान सूट में नहीं होना चाहिए। – Makoto
हाँ, यह एकमात्र समाधान है जो मेरे दिमाग में आया, लेकिन मुझे वास्तव में एक सूट में "संबंधित" परीक्षण करना पसंद है, उदा। एक टेस्ट-क्लास में एक वर्ग के लिए सभी परीक्षण ... – centic