0
我尝试测试具有注解@DependsOn的单例,其中我标记了之前必须初始化的另一个单例。但在测试中,我不想加载它们,因为它为我的测试提供了许多无用的类。对于前:如何在Arquillian测试中禁用@DependsOn注释?
@Singleton
@DependsOn({"anotherSingleton1", "anotherSingleton2"...})
public class SomeSingleton {
... methods and logic...
}
这里的例子测试:
public class SomeSingletonIT extends Arquillian {
@Mock SomeClassInSingleton;
... another mocks...
@Inject
@InjectMocks
SomeSingleton instance;
@BeforeClass
public void initMocks() {
mocks logic
}
@Deployment
public static WebArchive createDeployment() {
return ShrinkWrap.create(WebArchive.class, "test.war")
.addClasses(
SomeSingleton.class
)
.addAsLibraries(some Libs)
.addAsWebInfResource(EmptyAsset.INSTANCE,"beans.xml");
}
@Test
public void testGetProactiveSubjects() throws Exception {
System.out.println("***----------------------------------***");
assertNotNull(instance);
...some assertions...
System.out.println("***----------------------------------***");
}
}
我得到了的Arquillian并不见注释@DependsOn单身类例外。但是如果我将它们包含在测试存档中 - 我将不得不包括它们的所有依赖关系。并嘲笑他们在@ PostConstruct中的一些逻辑。所以...我如何禁用或模拟@DependsOn? 我使用arquillian与萤火虫管理的容器。
是的,我只是尝试类似的事情 - 我创建了虚拟单身人士,并根据需要在@DependsOn中命名它们(@Singleton(name =“amotherSingleton1”),并将它们包含到ShrinkWrap存档中。不喜欢当我的项目中有无用的类,就像嘲笑一样创建:)如果有人知道如何通过mockito实现 - 我会对你很有用! –