1
다음 코드를 테스트해야합니다. 나는 두 가지 그러나 코드 범위가 1 다른 2 가지가 있습니다 놓칠수 지점 4의를 말한다 커버해야 null이 null이 아닌 두 값을 전달하고 내 테스트 경우assert groupType! = null은 어떻게 4 개의 분기를 포함합니까
public List<PatientGroup> findGroups(final String groupType) throws HwBaseAppException
{
assert groupType != null;//4 branches here
CriteriaBuilder criteriaBuilder=persistence.getCriteriaBuilder();
CriteriaQuery<PatientGroup> query = criteriaBuilder.createQuery(PatientGroup.class);
Root<PatientGroup> patientGroupRoot = query.from(PatientGroup.class);
Predicate condition=criteriaBuilder.equal(patientGroupRoot.get(PatientGroup_.active), Boolean.TRUE);
Join<PatientGroup, GroupSubType> groupSubTypeRoot = patientGroupRoot.join(PatientGroup_.groupSubType);
Predicate condition1=criteriaBuilder.equal(groupSubTypeRoot.get(GroupSubType_.groupTypeCode), groupType);
query.where(condition,condition1);
query.orderBy(criteriaBuilder.asc(patientGroupRoot.get(PatientGroup_.name)));
TypedQuery<PatientGroup> tq = persistence.createQuery(query);
List<PatientGroup> collections = tq.getResultList();
return initializeGroupRelationships(collections);
}
? 다음은 테스트 사례입니다.
@Test
public void testFindGroups_1()
throws HwBaseAppException
{
Mockito.when(persistence.getCriteriaBuilder()).thenReturn(criteriaBuilder);
Mockito.when(criteriaBuilder.createQuery(PatientGroup.class)).thenReturn(criteriaQuery);
Mockito.when(criteriaQuery.from(PatientGroup.class)).thenReturn(patientGroupRoot);
Mockito.when(patientGroupRoot.join(PatientGroup_.groupSubType)).thenReturn(groupSubTypeRoot);
Mockito.when(persistence.createQuery(Mockito.any(CriteriaQuery.class))).thenReturn(tq);
Mockito.when(tq.getResultList()).thenReturn(arrayList);
Mockito.when(arrayList.iterator()).thenReturn(iterator);
Mockito.when(iterator.hasNext()).thenReturn(true).thenReturn(false);
Mockito.when(iterator.next()).thenReturn(patientGroup);
groupServiceDAOImpl.findGroups("groupType");
}
@Test(expected=AssertionError.class)
public void testFindGroups_2()
throws HwBaseAppException
{
groupServiceDAOImpl.findGroups(null);
}
(어설 션을 사용할 수있는 어설 션)에 대해 왼쪽 분기를 가져 오는 방법에 대한 도움을받을 수 있습니까? 입력에 따라 0을 인수로 전달했지만 도움이되지 않습니다. –
@AviralSaxena Java에서 어설 션을 활성화/비활성화하는 방법은 http://docs.oracle.com/javase/7/docs/technotes/guides/language/assert.html#enable-disable을 참조하십시오. 테스트 및 코드 품질에 관해 말하면 -이 특별한 경우에는 모든 지점을 커버 할 필요가 없다는 것입니다. – Godin
@AviralSaxena btw는 질문에 답하는 경우 upvote를 사용하여 답변을 수락하는 것을 잊지 마십시오. 감사. – Godin