I test di integrazione (contesto di carico) e unit test funzionano insieme. Il mio codice esegue l'aspetto compilando il tempo usando la molla.Disattivazione di alcuni aspetti durante le prove di unità unitarie
Il mio problema è che i miei consigli dichiarati vengono eseguiti anche durante alcuni dei miei test di unità. Questo uccide la nozione di un test unitario, motivo per cui mi piacerebbe disabilitarli.
C'è qualcosa che posso inserire nella dichiarazione del pointcut, un metodo che posso chiamare, qualche configurazione di primavera o un comando di maven che disabilita questi consigli per qualcosa come tutto * UnitTest.java?
Grazie per l'aiuto.
esempio:
ho la seguente prova di unità:
@RunWith(MockitoJUnitRunner.class)
public class CompanyServiceImplTest {
@Test
public void createCampaignTest() throws Exception {
when(companyDaoMock.saveCompany(any(Campaign.class))).thenReturn(77L);
Long campaignId = companyService.createCampaign(campaignMock);
assertEquals(Long.valueOf(77L), Long.valueOf(campaignId));
}
}
e servizio seguente metodo:
@Override
@Transactional
@EventJournal(type = EventType.CAMPAIGN_CREATE, owner = EventOwner.TERMINAL_USER)
public Long createCampaign(Campaign campaign) {
return companyDao.saveCompany(campaign);
}
aspetto:
@Aspect
public class EventJournalAspect {
@Autowired
private EventJournalService eventJournalService;
@Pointcut(value="execution(public * *(..))")
public void anyPublicMethod() {}
@Pointcut("within(com.terminal.service..*)")
private void inService() {}
@AfterReturning(pointcut = "anyPublicMethod() && inService() && @annotation(eventJournal) && args(entity,..)", returning = "id")
public void process(Object id, EventJournal eventJournal, AbstractDomainEntity entity)
throws Throwable {
if (eventJournal.type() != EventType.CAMPAIGN_PAYMENT || id != null) {
saveEvent(eventJournal, EventStatus.SUCCESS, entity, (Long) id);
}
}
@AfterThrowing(pointcut = "anyPublicMethod() && inService() && @annotation(eventJournal) && args(entity,..)", throwing="ex")
public void processException(EventJournal eventJournal, AbstractDomainEntity entity, Exception ex) throws Throwable {
saveEvent(eventJournal, EventStatus.FAILURE, entity, null);
}
private void saveEvent(EventJournal eventJournal, EventStatus status, AbstractDomainEntity entity, Long persistentId) {
EventType type = eventJournal.type();
EventOwner owner = eventJournal.owner();
eventJournalService.saveEvent(type, owner, EventStatus.SUCCESS, entity, persistentId);
}
}
All'esecuzione del test - eventJournalService
è nullo. Così vedo NullPointerException
si prega di fornire l'esempio – gstackoverflow
Ho aggiunto dettagli al post originale. – gstackoverflow
Come potresti aggiungere dettagli a una domanda di cui non sei il manifesto originale? – kriegaex