테스트 중에 실제 객체를 대신하여 사용되는 가짜 객체
테스트 중에 실제 객체를 대체하여 사용
테스트 중에 필요한 모의 객체를 생성하고, 특정 동작을 시뮬레이션 하는 방식으로 사용
모의 객체를 테스트 대상 객체에 주입하는 방식을 가리킴
모의 객체를 테스트 대상 객체에 주입하여 테스트를 수행하는 방식
모의 객체를 테스트 대상 객체에 주입하여 테스트를 수행하는 방식으로 사용
public class ArticleServiceTest {
@Test
public void testSaveArticle() {
// 모의 객체 생성
BlogService mockBlogService = mock(BlogService.class);
// 주입 모의
ArticleService articleService = new ArticleService();
articleService.setBlogService(mockBlogService);
// Article 객체 생성
Article article = new Article();
article.setTitle("Test Title");
article.setContent("Test Content");
// ArticleService의 saveArticle 메서드 호출
articleService.saveArticle(article);
// 모의 객체의 save 메서드가 호출되었는지 검증
verify(mockBlogService).save(article);
}
verify : 모의 객체의 메서드 호출을 검증하는 데 사용// 모의 객체의 save 메서드가 한 번 호출되었는지 검증
verify(mockBlogService, times(1)).save(article);
객체가 필요로 하는 의존성을 외부에서 주입받는 것
모의 객체는 테스트 중에 실제 객체를 대체하여 사용하고, 주입 모의는 모의 객체를 의존성 주입을 통해 테스트 대상 객체에 주입하여 테스트를 수행