Java 如何在JUnit测试类中注入多个EJB
我正在尝试测试一个类,该类具有多个与其他EJB连接的EJB 如何将该类中的所有EJB注入JUnit测试类Java 如何在JUnit测试类中注入多个EJB,java,junit,ejb,Java,Junit,Ejb,我正在尝试测试一个类,该类具有多个与其他EJB连接的EJB 如何将该类中的所有EJB注入JUnit测试类 谢谢您不应该注入所有依赖项。为了测试EJB,您应该使用类似Mockito的框架来模拟/模拟这些依赖项。 假设您有以下bean: @Stateless public class ServiceBean implements Service { @Inject private Dao dao; public boolean insert(Someclass som
谢谢您不应该注入所有依赖项。为了测试EJB,您应该使用类似Mockito的框架来模拟/模拟这些依赖项。 假设您有以下bean:
@Stateless
public class ServiceBean implements Service {
@Inject
private Dao dao;
public boolean insert(Someclass someClass){
return dao.insert(someClass);
}
}
您应该使用以下方式模拟Dao
(它应该是一个接口,而不是一个具体的类):
@RunWith(MockitoJUnitRunner.class)
public class ServiceBeanTest {
@Mock
private Dao daoMock;
@InjectMocks
private ServiceBean bean;
@Test
public void testInsert() {
when(daoMock.insert(Matchers.any(SomeClass.class))).thenReturn(true);
assertTrue(bean.insert(new Someclass()));
}
}
这里发生了什么:
- Mockito正在从接口
创建一个模拟对象,它将模拟一个实现李>Dao
- 此模拟将被注入到
实例中李>ServiceBean
- 当指示模拟时,使用方法
- 您的单元测试只验证
行为,不会对依赖项执行任何测试,这些依赖项应该在另一个测试类中进行测试。这允许您隔离类中的组件ServiceBean