Postman으로 항상 테스트를 하다가 경우의 수도 많고 힘들기도 하고 기록 찾기도 애매한데
요새 자꾸 로그인하라고 강요를 해서(비번생각매번안남)
Junit 테스트를 시작하게되었다.
1. 빌드패스 에 test 폴더를 추가한다.
2. 테스트 폴더 내에 테스트 클래스를 추가한다.
3. (메이븐) 의존성을 추가한다. (적당히 필요한거위주로)
<!--test part-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<!--<scope>test</scope>-->
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<!--<scope>test</scope>-->
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
Mockito
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<scope>test</scope>
</dependency>
<!--test part-->
4. 테스트 클래스를 작성한다.
// SpringRunner, Parameterized, MockitoJUnitRunner, Suite
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("local")
// 테스트 클래스와 메인 어플리케이션 이름이 다른경우(대부분 다를듯?)
@ContextConfiguration(classes = Application.class)
// 로컬 db에 쓰더라도 테스트 후 전부 롤백
@Transactional
@Slf4j
public class ApiServiceTest {
@Autowired
private ApiServiceImpl apiService;
private ModelMap modelMap;
private HashMap<String, Object> paramMap;
@BeforeEach
public void setUp() {
modelMap = new ModelMap();
modelMap.put("AUTHORIZED", true);
paramMap = new HashMap<>();
}
@Test
public void testDoAlive() {
HashMap<String, Object> result = apiService.doAlive(modelMap, paramMap);
assertEquals(200, result.get("result_code"));
}
}
5. (maven) update
6.실행