gpt4 book ai didi

java - 需要有关 EJB3 bean 类型与单元测试的建议

转载 作者:行者123 更新时间:2023-11-30 04:37:15 25 4
gpt4 key购买 nike

首先,这是我的设置:

  • 应用服务器:jBoss 4.2.3GA
  • 使用的框架:Struts 2、EJB3
  • 数据库管理系统:PostgreSQL 9.0.3

默认情况下,出于安全目的,我总是将 bean 设置为 @Local。当不需要时,我不想打开同一容器内其他应用程序的大门。

现在,我专注于通过测试来驱动我的开发(测试驱动开发)。因此,我为我的测试创建了一个单独的项目(一种测试项目),以避免编写测试代码并在与应用程序相同的项目中安装测试工具(EasyMock、jUnit、StrutsTest 等)。

所以...这意味着我将 bean 设置为 @Remote,以便能够从 jUnit 测试类访问它们。

我的问题是:有没有办法使用某种条件编译/构建从@Local切换到@Remote?每次都必须将我的bean设置回本地是相当麻烦和无聊的。每个开发人员都知道重构会带来问题,因此我试图找到一种适当的方法来管理我的 bean 的可见性。另一个想法是来自属性或 XML 文件,这样我只需要根据我的需要打开或关闭一项内容。

对于每个要测试的 bean,我需要: - 将接口(interface)设置为@Remote - 在 session bean中添加远程接口(interface)的implements项

有什么想法吗?

非常感谢

查尔斯

最佳答案

如果我理解得很好,您可以从单元测试连接到应用程序服务器来访问远程 EJB,对吗?

我已经有几年没有使用 EJB 了,但是有两种方法可以在没有远程通信的情况下对 EJB 进行单元测试:

  1. 使用嵌入式容器,请参阅 Embedding EJB 3.1 Container Into Your Unit Tests
  2. 您将 EJB 用作普通 java 类并自己模拟依赖项,请参阅 Unit Testing for Java EE 。您可以配置模拟以返回特定事件的特定值。

希望有帮助。

关于java - 需要有关 EJB3 bean 类型与单元测试的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13180688/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com