[SPRING] Mockito NullPointerException
SPRINGMockito NullPointerException
@hoaz가 제안한 것을 따랐다. 그러나 nullpointer 예외가 나타납니다.
@RunWith(MockitoJUnitRunner.class)
public class GeneralConfigServiceImplTest {
@InjectMocks private GeneralConfigService generalConfigService;
@Mock private SomeDao someDao;
@Mock private ExternalDependencyClass externalDependencyObject
@Test
public void testAddGeneralConfigCallDAOSuccess() {
when(someDao.findMe(any(String.Class))).thenReturn(new ArrayList<String>(Arrays.asList("1234")));
//println works here, I am able to get collection from my mocked DAO
// Calling the actual service function
generalConfigService.process(externalDependencyObject)
}
}
내 코드에서는 다음과 같습니다.
import com.xyz.ExternalDependencyClass;
public class GeneralConfigService{
private SomeDao someDao;
public void process(ExternalDependencyClass externalDependencyObject){
// function using Mockito
Collection<String> result = someDao.findMe(externalDependencyObject.getId.toString())
}
}
나는 또한 DAO가 널 (null)이라는 것을 알아 냈다. (언급하기 위해, 나는 봄날 단위와 모치토 또는 xyz의 차이점을 알고있다.
@Autowired
private SomeDao someDao;
@ 존 B 솔루션은 내 문제를 해결했습니다. 그러나 나는 나를 위해 일하지 않았던 것을 언급하고 싶다. 이것은 업데이트 된 단위 테스트입니다.
@Test
public void testAddGeneralConfigCallDAOSuccess() {
/*
This does not work
externalDependencyObject.setId(new ExternalKey("pk_1"));
// verify statement works and I thought that the class in test when call the getId
// it will be able to get the ExternalKey object
//verify(externalDependencyObject.setId(new ExternalKey("pk_1")));
*/
// This works
when(externalDependencyObject.getId()).thenReturn(new ExternalKey("pk_1"));
when(someDao.findMe(any(String.Class))).thenReturn(new ArrayList<String>(Arrays.asList("1234")));
....
// Calling the actual service function
generalConfigService.process(externalDependencyObject)
}
이 질문에 참조 된 :
Mockito를 사용하여 외부 메소드 호출을 조롱하는 방법
Mockito를 사용하여 조롱 된 객체에 속성을 설정하려면 어떻게해야합니까?
해결법
-
==============================
1.externalDependencyObject에서 getId의 동작을 조롱하지 않았으므로 null을 반환하고 해당 null에서 toString ()이 호출 될 때 NPE를 제공합니다.
externalDependencyObject에서 getId의 동작을 조롱하지 않았으므로 null을 반환하고 해당 null에서 toString ()이 호출 될 때 NPE를 제공합니다.
when (외부 Dependency Object.get Id ())가 필요합니다. 그렇다면 ...
from https://stackoverflow.com/questions/24072579/mockito-nullpointerexception by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] RestTemplate + 잭슨 (0) | 2019.03.28 |
---|---|
[SPRING] 스프링 보안 @AuthenticationPrincipal (0) | 2019.03.28 |
[SPRING] Hibernate는 sql_show = true로 SQL 문을 보여주지 않는다. (0) | 2019.03.28 |
[SPRING] 이름이 'org.springframework.security.filterChains'인 빈 생성 오류 Spring + Hibernate + UserDetailSservice (0) | 2019.03.28 |
[SPRING] Spring을 테스트 할 때 가양 성을 피하기 위해 이전 플러시의 필요성에 대한 설명이 필요합니까? (0) | 2019.03.28 |