統合テスト(ロードコンテキスト)とユニットテストを一緒に実行しています。私のコードは、springを使用してアスペクトをコンパイルする時間を行います。ユニットテスト実行中の特定の側面を無効にする
私の問題は、私の宣言されたアドバイスが私のユニットテストのいくつかの間に実行されることです。これは単体テストの概念を打ち消します。そのため私はそれらを無効にしたいのです。
Pointcut宣言、私が呼び出せるメソッド、Springの設定、またはこれらのアドバイスをすべて無効にするmavenコマンドが* UnitTest.javaのようなものがありますか?
ありがとうございました。
例:
I持って以下のユニットテスト:
@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));
}
}
及び次のサービス方法
@Override
@Transactional
@EventJournal(type = EventType.CAMPAIGN_CREATE, owner = EventOwner.TERMINAL_USER)
public Long createCampaign(Campaign campaign) {
return companyDao.saveCompany(campaign);
}
態様:
@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);
}
}
テスト実行時 - eventJournalService
がnullです。したがって、私は参照してくださいNullPointerException
例を入力してください – gstackoverflow
元の投稿に詳細を追加しました。 – gstackoverflow
元のポスターではない質問にどのように詳細を追加できますか? – kriegaex