Arquillian运行模式

时间:2012-06-29 16:04:53

标签: java jboss-arquillian

我正试图绕过Arquillian并且我并没有从根本上理解in-container模式与as-client模式之间的区别。

我的理解是,使用Arquillian / ShrinkWrap:

  • 您创建的存档仅包含要与
  • 集成并进行测试的组件
  • 您将此内存存档流式传输到实际容器(部署它)
  • 您将存档作为容器内的测试运行
  • 您断言该测试会发生什么

因此,从我的角度来看,一切都“感觉”就像它总是in-container一样,因为测试总是在容器内执行。

请帮助我理解这两种模式之间的差异以及两种模式适合的集成测试类型。提供具体代码示例的加分点(直接来自参考指南的模糊的!)解释了为什么/如何在两种模式下运行测试。提前谢谢!

1 个答案:

答案 0 :(得分:2)

  • in-container:用于白盒,集成测试
  • as-client:用于黑匣子,功能测试

即,对于UI /功能测试(“作为”在生产中使用该应用程序的“客户”角色)使用as-client模式与@RunAsClient。对于真正的集成测试(测试需要内部“白盒”知识的类之间的依赖关系),使用in-container模式。

在这两种情况下,ShrinkWrap和Arquillian将内存存档(JAR / WAR / EAR)直接部署到配置的容器(通过JBoss本地流式传输协议),但是当测试以不同的模式运行时,它们具有不同的访问权限。容器取决于测试模式。