JUnit은 Java에서 가장 널리 사용되는 단위 테스트 프레임워크이다. 이를 통해 개발자는 코드의 개별 단위를 독립적으로 테스트할 수 있으며, 자동화된 테스트를 쉽게 작성하고 실행할 수 있다.
@Test, @BeforeEach, @AfterEach 등을 사용하여 테스트 코드 작성assertEquals(), assertTrue() 등을 통해 예상 결과와 실제 결과 비교import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
class CalculatorTest {
@Test
void testAddition() {
Calculator calculator = new Calculator();
assertEquals(5, calculator.add(2, 3));
}
}
Mockito는 Java에서 가장 널리 사용되는 모의 객체(Mock Object) 프레임워크로, 단위 테스트에서 의존성을 분리하는 데 유용하다.
@Mock 또는 Mockito.mock(Class.class) 사용when().thenReturn()을 통해 원하는 동작을 모의하고, verify()로 실행 여부 확인@InjectMocks를 활용하여 자동으로 Mock 객체 주입import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import static org.mockito.Mockito.*;
import static org.junit.jupiter.api.Assertions.*;
class ServiceTest {
@Test
void testService() {
Repository mockRepo = mock(Repository.class);
when(mockRepo.getData()).thenReturn("Mock Data");
Service service = new Service(mockRepo);
assertEquals("Mock Data", service.fetchData());
verify(mockRepo).getData();
}
}
Spring Boot는 Spring 프레임워크를 기반으로 한 애플리케이션 개발 프레임워크로, 설정을 최소화하고 빠르게 애플리케이션을 개발할 수 있도록 돕는다.
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
@RestController
@RequestMapping("/api")
class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}