我正试图绕过Arquillian并且我并没有从根本上理解in-container
模式与as-client
模式之间的区别。
我的理解是,使用Arquillian / ShrinkWrap:
因此,从我的角度来看,一切都“感觉”就像它总是in-container
一样,因为测试总是在容器内执行。
请帮助我理解这两种模式之间的差异以及两种模式适合的集成测试类型。提供具体代码示例的加分点(不直接来自参考指南的模糊的!)解释了为什么/如何在两种模式下运行测试。提前谢谢!
答案 0 :(得分:2)
即,对于UI /功能测试(“作为”在生产中使用该应用程序的“客户”角色)使用as-client
模式与@RunAsClient
。对于真正的集成测试(测试需要内部“白盒”知识的类之间的依赖关系),使用in-container
模式。
在这两种情况下,ShrinkWrap和Arquillian将内存存档(JAR / WAR / EAR)直接部署到配置的容器(通过JBoss本地流式传输协议),但是当测试以不同的模式运行时,它们具有不同的访问权限。容器取决于测试模式。