EJB 테스트에 Mockito를 사용하고 싶습니다. get()
메서드는 데이터베이스 쿼리 결과와 함께 반환되고 transformedGet()
은 세션 빈에서 비즈니스 논리를 수행합니다.모의 된 메서드가 예상 값 대신 null을 반환합니다.
mockFoo.get()
이 직접 호출되면 예상대로 작동합니다. 그러나 mockFoo.transformedGet()
이 get()
메서드를 호출하면 예상 값 대신 null이 반환됩니다.
비즈니스 로직을 테스트하고 데이터베이스 쿼리를 격리하고 싶습니다. Mockito로이 작업을 수행 할 수 있습니까? 테스트에
등급 :
public class Foo {
public String get() {
return "get";
}
public String transformedGet() {
return "transformed" + get();
}
}
테스트 :
@Test
public void mockitoTest() {
Foo mockFoo = Mockito.mock(Foo.class);
String expected = "test";
Mockito.when(mockFoo.get()).thenReturn(expected);
String actual = mockFoo.get();
Assert.assertEquals(actual, expected);
String transformed = mockFoo.transformedGet();
Assert.assertEquals(transformed, "transformed" + expected);
}