Unit testing 使用嵌入式容器测试EJB3.1应用程序
在嵌入式容器上部署bean或bean方法(或单元)后,是否可以将其称为“单元测试”来进行测试。我觉得这是可能的,因为Unit testing 使用嵌入式容器测试EJB3.1应用程序,unit-testing,ejb,ejb-3.0,ejb-3.1,Unit Testing,Ejb,Ejb 3.0,Ejb 3.1,在嵌入式容器上部署bean或bean方法(或单元)后,是否可以将其称为“单元测试”来进行测试。我觉得这是可能的,因为 我们仍然只测试单个单元,可能是单个EJB或其方法,它不依赖于任何其他开发人员提供的任何其他应用程序代码。但是,它当然从嵌入式容器中获取服务
-Ganesa…我认为答案完全取决于你在测试中做了什么 根据单元测试的定义。如果您需要一个嵌入式容器来测试最小的代码单元,那么是的,这就是单元测试 我的一个例子是使用高超音速DB进行DAO测试。如果没有内存中的DB(据我所知),测试JPA查询是不可能的,它们是DAO方法代码的最小部分
但是,如果您使用嵌入式容器测试EJB方法,并且它们与其他注入的EJB或POJOs(例如通过CDI)进行协作,那么我将考虑这种集成测试。您现在不是在测试最小的代码,而是在测试其他东西(其他协作EJB或POJO),您需要模拟协作者来真正测试EJB的最小代码块。
在我的情况下,我的EJB不会与其他EJB协作,而只接受容器提供的服务。例如,我的EJB将使用已配置的消息队列、目的地、与安全相关的配置等,以确保它们在容器中部署时不会中断。当然,我计划分两个层次来处理它。首先,模拟一切,只测试单元。在第二个层次上,我想先测试一下我的单元是否在嵌入式容器上工作,然后再将其与其他应用程序代码集成。对吗?你的第二级测试我会考虑它的集成测试。您已经有了单元测试来确保小块代码是正确的。您的“第二级”测试更倾向于确保配置是正确的-我不愿意将任何配置测试作为我的单元测试套件的一部分。感谢您在这方面的投入:-)