我有集成测试(加载上下文)和单元测试一起运行.我的代码使用spring进行编译时编织.
我的问题是我声明的建议也在我的一些单元测试中运行.这会杀死单元测试的概念,这就是我想禁用它们的原因.
有什么我可以放在切入点声明,我可以调用的一些方法,一些弹簧配置,或maven命令,禁用这些建议像所有*UnitTest.java?
谢谢您的帮助.
例:
我有以下单元测试:
@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));
}
}
Run Code Online (Sandbox Code Playgroud)
以及服务方法:
@Override
@Transactional
@EventJournal(type = EventType.CAMPAIGN_CREATE, owner = EventOwner.TERMINAL_USER)
public Long createCampaign(Campaign campaign) {
return companyDao.saveCompany(campaign);
}
Run Code Online (Sandbox Code Playgroud)
方面:
@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 …Run Code Online (Sandbox Code Playgroud) 这是我用于创建临时表的语法:
create temp table tmpTable (id bigint not null, primary key (id)) on commit drop;
Run Code Online (Sandbox Code Playgroud)
我知道这意味着在每个事务结束时,此表将被删除.我的问题是,如果同一会话中的两个或多个线程创建并将值插入临时表,它们每个都会获得自己的实例,还是整个会话中共享的临时实例?如果它是共享的,有没有办法让它在每个线程本地?
谢谢Netta
我有以下内容:
class Goo
trait Bar[D] {
def toD : D
}
class Moo extends Bar[Goo] {
def toD : Goo = new Goo
}
object Foo {
import scala.collection.JavaConversions._
import java.util
implicit def scalaSetToJavaSet[D](bars: Set[Bar[D]]) : util.Set[D] = bars.map(_.toD)
}
trait Zoo {
import java.util
import Foo._
var javaSet : util.Set[Goo] = Set(new Moo) //compile error
var explicitJavaSet: util.Set[Goo] = scalaSetToJavaSet(Set(new Moo)) //works!!!
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译此代码时,我收到一个错误:
"error: type mismatch;
found : scala.collection.immutable.Set[Moo]
required: java.util.Set[Goo]
var javaSet : util.Set[Goo] = ***Set(new Moo)***" …Run Code Online (Sandbox Code Playgroud)