[SPRING] Spring jdbcTemplate 유닛 테스트
SPRINGSpring jdbcTemplate 유닛 테스트
저는 Spring을 처음 접했고 JUnit과 Mockito를 약간만 경험했습니다.
나는 단위 테스트가 필요한 다음과 같은 방법을 가지고있다.
public static String getUserNames(final String userName {
List<String> results = new LinkedList<String>();
results = service.getJdbcTemplate().query("SELECT USERNAME FROM USERNAMES WHERE NAME = ?", new RowMapper<String>() {
@Override
public String mapRow(ResultSet rs, int rowNum) throws SQLException {
return new String(rs.getString("USERNAME");
}
}
return results.get(0);
},userName)
누구든지 내가 JUnit과 Mockito를 사용하여 이것을 달성 할 수있는 방법에 대한 제안을 가지고 있습니까?
대단히 감사드립니다!
해결법
-
==============================
1.당신이 순수 단위 테스트를하고 싶다면 그 라인에 대해
당신이 순수 단위 테스트를하고 싶다면 그 라인에 대해
service.getJdbcTemplate().query("....");
서비스를 조롱 한 다음 service.getJdbcTemplate () 메소드를 사용하여 모의 JdbcTemplate 객체를 반환 한 다음 조롱 된 JdbcTemplate의 쿼리 메소드를 조롱하여 필요한 List를 반환해야한다. 이 같은:
@Mock Service service; @Mock JdbcTemplate jdbcTemplate; @Test public void testGetUserNames() { List<String> userNames = new ArrayList<String>(); userNames.add("bob"); when(service.getJdbcTemplate()).thenReturn(jdbcTemplate); when(jdbcTemplate.query(anyString(), anyObject()).thenReturn(userNames); String retVal = Class.getUserNames("test"); assertEquals("bob", retVal); }
위의 경우에는 어떤 종류의 Spring 지원도 필요하지 않습니다. 실제로 데이터가 DB에서 제대로 추출되었는지 테스트하려는 통합 테스트를 수행했다면 Spring Test Runner를 사용하는 것이 좋습니다.
-
==============================
2.이를 위해서는 Spring Test를 사용해야합니다. 설명서를 살펴보십시오.
이를 위해서는 Spring Test를 사용해야합니다. 설명서를 살펴보십시오.
http://docs.spring.io/spring/docs/3.2.x/spring-framework-reference/html/testing.html
@RunWith를 사용하여 테스트를 만들고 Spring 컨텍스트를 @ContextConfiguration과 함께 사용해야합니다.
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("classpath:spring-config.xml") public class SpringAppTests { @Autowired private HelloService helloService; @Test public void testSayHello() { Assert.assertEquals("Hello world!", helloService.sayHello()); } }
여기에 문서에서 약간의 설명이 있습니다.
@Runwith
@ContextConfiguration
도움을 받기를 희망한다.
from https://stackoverflow.com/questions/24123683/spring-jdbctemplate-unit-testing by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] @size (max = value)와 @min (value) 사이의 차이점 @max (value) (0) | 2019.06.24 |
---|---|
[SPRING] Spring Webflux / WebClient에서 이벤트 루프 풀 크기를 설정하는 방법은 무엇입니까? (0) | 2019.06.24 |
[SPRING] 스프링 업로드 파일 크기 제한 (0) | 2019.06.20 |
[SPRING] CompletableFuture allof (..). join () vs CompletableFuture.join () (0) | 2019.06.20 |
[SPRING] 스프링 MVC로 http 요청을 제대로 로깅하는 법 (0) | 2019.06.20 |