[英]Generic test class for a generic DAO class?
我正在嘗試測試一些從通用類繼承的DAO類,並且想知道是否存在編寫通用測試類的方法來測試我的通用DAO的功能,並創建從該類繼承的其他測試類
我的通用DAO類別:
public abstract class GenericDAO<T> {
private final Class<T> entityClass;
public GenericDAO(Class<T> entityClass) {
this.entityClass = entityClass;
}
//bunch of methods
//...
}
從我的泛型繼承的示例DAO
public class OptionsDAO extends GenericDAO<Options> {
public OptionsDAO() {
super(Options.class);
}
}
我目前在測試中
public class OptionsDAOTest {
//...
@Test
public void testSomeMethod() {
OptionsDAO odao = new OptionsDAO(); //this is what blocked me from achieving what i'm trying to do (look @next sction)
odao.callSomeMethod();
//Asserts and what not...
}
//...
}
這就是我希望做的
public class GenericDAOTest<T> {
private final Class<T> entityClass;
public GenericDAOTest(Class<T> entityClass) {
this.entityClass = entityClass;
}
@Test
public void testSomeMethod() {
GenericDAO gdao = ???//how can i get an instance based on the T passed to the class?
odao.callSomeMethod();
//Asserts and what not...
}
//...
}
public class OptionsDAOTest extends GnericDAOTest<Options> {
public OptionsDAOTest() {
super(OptionsDAO.class);
}
//how can i call inhrited methods here to test them on an Options java bean
//and do the same with oter DAO classes i have?
}
GenericDAO gdao = ??? //如何基於傳遞給該類的T獲取實例?
如果泛型類提供了無參數構造函數,則可以只調用entityClass.newInstance()
。 請注意, entityClass
的類型為Class<T>
,因此類型為T
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.