2

次のコードをテストする必要があります。

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);
}

私のテストケースでは、両方のブランチをカバーする必要があるnull値とnullでない値の両方を渡していますが、コードカバレッジは、4つのブランチのうち1つが見逃されたと言っています。他の2つのブランチは何ですか? 以下は私のテストケースです。

 @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);   
    }
4

1 に答える 1