반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- parse
- springboottest
- xcrun: error: invalid active developer path
- mysql executequery error
- xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools)
- aws
- Medium
- java version
- yum install java
- java 1.8 11
- mac os git error
- 스프링부트테스트
- java
- No tests found for given includes
- ssl이란?
- statement.executequery() cannot issue statements that do not produce result sets.
- Java 1.8
- java 11
- JUnit
- ssl프로토콜확인
- LeetCode
- easy
- AWS CLI
- OpenFeign
- java 여러개 버전
- springboot
- java 버전 변경
- log error
- error
- tls프로토콜확인
Archives
- Today
- Total
쩨이엠 개발 블로그
[Mockito Test] doNothing 에러 (Only void methods can doNothing()) 본문
728x90
반응형
Mockito로 Unit Test를 하는 도중 Service 내에서 다른 API 호출건이 포함되어있다
테스트할 때에는 포인트 적립이 되지 않도록 Mocking을 하기 위해 doNothing을 사용했다
Mockito.doNothing().when(pointApi).savePoint(any());
그리고 다음과 같은 에러를 받았다
Only void methods can doNothing()!
Example of correct use of doNothing():
doNothing().
doThrow(new RuntimeException())
.when(mock).someVoidMethod();
Above means:
someVoidMethod() does nothing the 1st time but throws an exception the 2nd time is called
org.mockito.exceptions.base.MockitoException:
Only void methods can doNothing()!
Example of correct use of doNothing():
doNothing().
doThrow(new RuntimeException())
.when(mock).someVoidMethod();
doNothing이란 메소드는 void인 경우에만 사용할 수 있다는 말이었는데
그렇다면 받아올 것에는 무엇을 써야하나
하고 찾은 것이 doReturn
@SpyBean
private PointApi pointApi;
@Test
void test() {
..
// when
Mockito.doReturn(null).when(pointApi).savePoint(any());
..
}
void가 아닌 경우에는 SpyBean으로 Mocking한 후, Return값을 설정해줘서 동일하게 API가 호출된 것처럼 할 수 있다
나는 적립이 안되도록만 하면 되기때문에 null로 리턴받기 성공 !
728x90
반응형
'개발 > Spring' 카테고리의 다른 글
Comments