Java/Test Code
[Junit] 객체의 생성을 Mocking하는 방법. (생성자를 Mocking하기)
2020. 12. 29. 16:50반응형
생성자 Mocking 하는 방법
1. 먼저 Socket s = new Socket() 구문에 대해서 Socket m = makeSocket() 형태로 바꾼다.
2. make함수는 Socket() 객체를 새로 반환하는 형태를 가진다
3. 그리고 spy함수를 통하여 아래와 같이 한다.
Socket mMockSocket = mock(Socket.class)
Server mSpyServer = spy(mServer);
when(mSpyServer.makeSocket).thenReturn(mMockSocket)
.
.
class ServerTest() {
public void Test() {
Server mServer = new Server()
Socket mMockSocket = mock(Socket.class);
Server mSpyServer = spy(mServer);
when(mSpyServer.makeSocket).thenReturn(mMockSocket);
}
Socket makeSocket() {
return new Socket();
}
}
.
.
.
이렇게 만들면 Server내에서 생성하는 socket들을 mocking하여 진행할 수 있다.
+ 추가적으로
아래와 같이 한다면 mocking된 socket함수의 메서드들을 제어할 수 있다.
ex) when(mMockSocket.send(any()).thenReturn(true);
참고
stackoverflow.com/questions/13364406/mock-a-constructor-with-parameter
stackoverflow.com/questions/11214136/unit-testing-with-mockito-for-constructors/11214995
도움이 되셨다면 좋아요 한번만 눌러주세요!
반응형
'Java > Test Code' 카테고리의 다른 글
[TDD] Stub한다의 의미. (0) | 2021.01.06 |
---|---|
TDD (0) | 2021.01.06 |
a (0) | 2020.12.31 |
[Junit] Junit 용어 정리 (0) | 2020.12.30 |
Mock/Stub/Spy의 차이점 (0) | 2020.12.23 |