[英]How to inject with EJB correctly in JEE and test with Arquillian using Junit?
[英]How to inject multiple EJB in a JUnit test class
我正在嘗試測試具有與其他EJB連接的多個EJB的類。
如何將該類中的所有EJB注入到JUnit測試類中?
謝謝
您不應注入所有依賴項。 您應該使用Mockito之類的框架來模擬/模擬那些依賴關系,以便測試EJB。 假設您有以下bean:
@Stateless
public class ServiceBean implements Service {
@Inject
private Dao dao;
public boolean insert(Someclass someClass){
return dao.insert(someClass);
}
}
您應該以這種方式使用Mockito模擬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()));
}
}
這里發生了什么事:
Dao
創建一個模擬對象,該對象將模仿一個實現。 ServiceBean
實例中; when
使用方法。 ServiceBean
行為,不對依賴項執行任何測試,應在另一個測試類中對其進行測試。 這使您可以隔離類中的組件。 Mockito網站包含有關如何正確執行此操作的各種教程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.