【问题标题】:Prepopulate memory database when running client tests with Arquillian使用 Arquillian 运行客户端测试时预填充内存数据库
【发布时间】:2014-06-19 11:40:27
【问题描述】:

我有以下要求:

我想测试我的 UI(使用石墨烯和无人机),但我需要在所有测试之前登录到应用程序。我在 jboss 中有一个数据库身份验证领域,用于测试使用 H2 内存数据库。所以我需要在用户表中的所有测试之前添加一个用户(用户名,密码),这样我就可以在我的应用程序中成功登录。

我首先尝试在测试类中注入我的用户 EJB,这样我就可以在数据库中的所有测试之前创建一个用户。这是不可能的,因为 UI 测试在客户端上运行 (testable=false)。很明显,当时我并不知道 arquillian 是如何工作的……

然后我尝试使用 arquillian 持久性扩展和 @UsingDataSet 注释,但这也因同样的原因而失败(虽然我不确定为什么,因为我不知道该注释的确切工作原理)。

最后,我尝试使用 @Startup 注释创建一个单例 EJB,并在其 @PostConstruct 方法上创建我需要的用户。调试时,我可以在 H2 控制台中看到该用户已创建。但是当我运行测试时,登录仍然失败。

谁能解释为什么最后一个案例失败了,因为我不明白。但最重要的是,如果有人知道如何完成这项工作,我将不胜感激!

【问题讨论】:

    标签: ejb h2 jboss-arquillian


    【解决方案1】:

    因此,当您运行客户端测试时,不会将任何内容添加到您的存档中。如果可能,请将您的存档标记为testable=true,然后这些扩展将添加到测试中。你可以做一些事情,比如有一个在服务器上运行的设置方法,但是用户的值不会发送给你。您需要插入它们。只要您对这种需求感到满意,这应该适合您。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多