이 article에서 정의 된 JpaDao
클래스의 매우 구체적인 예를 살펴보면Java에서 제네릭을 사용하여 클래스에 대해 쓸 단위 테스트는 무엇입니까?
public abstract class JpaDao<K, E> implements Dao<K, E> {
protected Class<E> entityClass;
@PersistenceContext
protected EntityManager entityManager;
public JpaDao() {
ParameterizedType genericSuperclass = (ParameterizedType) getClass().getGenericSuperclass();
this.entityClass = (Class<E>) genericSuperclass.getActualTypeArguments()[1];
}
public void persist(E entity) { entityManager.persist(entity); }
public void remove(E entity) { entityManager.remove(entity); }
public E findById(K id) { return entityManager.find(entityClass, id); }
}
응용 프로그램의 모든 기존 엔터티 (Order
, Customer
, Book 등)에 대한 단위 테스트를 작성하는 것이 가장 좋습니다. 또는이 other question에서 암시 한 단 하나의 엔티티에 대한 단위 테스트를 작성하는 것이 허용됩니까? 범용 클래스를 사용하여 Java 클래스를 테스트하는 것과 관련된 모범 사례가 있습니까?