Gradle.build 설정
dependencies {
testCompile('org.junit.jupiter:junit-jupiter-api')
testRuntimeOnly('org.junit.jupiter:junit-jupiter-engine')
testImplementation ('org.mockito:mockito-core:2.26.0')
}
[테스트 코드]
package mock;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.BDDMockito.given;
import static org.mockito.Mockito.mock;
public class GameGenMockTest {
@Test
void mockTest() {
GameNumGen genMock = mock(GameNumGen.class);
given(genMock.generate(GameLevel.EASY)).willReturn("123");
String num = genMock.generate(GameLevel.EASY);
assertEquals(num, "123");
}
}
package mock;
public enum GameLevel {
EASY
}
package mock;
public interface GameNumGen {
String generate(GameLevel level);
}
[Mock 으로 Exception 테스트]
@Test
void mockThrowTest() {
GameNumGen genMock = mock(GameNumGen.class);
given(genMock.generate(null)).willThrow(IllegalArgumentException.class);
assertThrows(IllegalArgumentException.class,
()-> genMock.generate(null));
}
'프로그래밍 > OOP_Pattern_TDD' 카테고리의 다른 글
람다로 효과적 프로그래밍 - 조건부 연기 실행, 실행 어라운드 패턴 (0) | 2023.02.28 |
---|---|
The Economics of TDD (TDD의 경제성) (0) | 2022.10.24 |
TDD - Junit4, Junit5 예외 테스트 방법 (0) | 2022.08.24 |
[TDD]Springboot + Gradle + Jacoco 커버리지 확인 (0) | 2022.08.09 |
[Spring Boot] 테스트에 Spring Security 적용하기 (0) | 2022.08.08 |