使用嵌入式容器测试EJB 3.1应用程序

时间:2011-10-23 13:37:40

标签: unit-testing ejb ejb-3.0 ejb-3.1

在将其作为“单元测试”部署在嵌入式容器上之后,是否可以调用测试bean或bean方法(或单元)。 IMO,我觉得这是可能的,因为,

  1. 我们仍然只测试一个单元,可能是单个EJB或其方法,它不依赖于任何其他开发人员的任何其他应用程序代码。但是,当然它需要来自嵌入式容器的服务。
  2. 恕我直言,我们可以认为这些嵌入式容器只是提供一些服务的几个罐子,就像JRE提供普通的Java SE应用程序一样。因此,如果我们考虑在JRE中测试java SE类或方法作为单元测试,那么我想我们也可以将上述场景称为单元测试。
  3. 我同意有很多关于这个主题可以辩论的内容,我也同意我上面提到的可能不对。所以,如果我的想法是对的,或者我错过了一些观点,我想听听大家的意见。据我所知,单元测试没有单一而可靠的定义。如果有的话,请给我一些指示,这对我有很大的帮助。

    非常感谢您的支持。 - Ganesa ......

1 个答案:

答案 0 :(得分:2)

我认为答案完全取决于你在测试中做了什么。

根据单元测试的定义,(it) is a method by which individual units of source code are tested to determine if they are fit for use. A unit is the smallest testable part of an application。如果你需要一个嵌入式容器来测试最小的代码单元,那么是的,它是单元测试。

我的一个例子是使用Hypersonic DB进行DAO测试。没有内存数据库(据我所知)测试JPA查询是不可能的,它们是DAO方法代码的最小部分。

但是,如果您使用嵌入式容器来测试EJB方法,并且它们与其他注入的EJB或POJO(例如通过CDI)协作,那么我会考虑这种集成测试。您现在没有测试最小的代码,还有其他东西(其他协作的EJB或POJO),您需要模拟协作者才能真正测试EJB的最小代码块。