저는 주석 기반 구성을 사용하여 Spring 가능 embedded Tomcat 애플리케이션을 개발 중입니다. 이 애플리케이션은 REST 엔드 포인트에 스프링 MVC 컨트롤러를 사용한다. 관심사의 분리와 별도의 컨텍스트에서 빈이 중복되는 것을 피하기 위해, 상위 컨텍스트에는 REST 엔드 포인트가 아닌 모든 빈이 포함되며 Spring 웹 MVC 컨텍스트에는 REST 엔드 포인트 인 모든 빈이 포함됩니다.단위/통합 테스트 중에 스프링 계층 구조를 관리하는 방법은 무엇입니까?
나는 애플 리케이션의 구조를 대표하는 이러한 엔드 포인트에 대해 새로운 리팩터링 통합 테스트를 작성하려고합니다. 기존의 테스트 클래스는과 같이 있습니다
import com.stuff.web.MyEndpoint;
@Configuration
@ComponentScan(basePackages = {"com.stuff"})
public class SpringConfig { ... }
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {SpringConfig.class})
public class TestMyEndpoint {
@Autowired
private MyEndpoint myEndpoint;
private MockMvc mockMvc;
@Before
public void setUp() {
mockMvc = MockMvcBuilders
.standaloneSetup(myEndpoint)
.build();
}
@Test
public void testMyEndpoint() throws Exception {
mockMvc.perform(get("/myendpoint")
.accept(MediaType.APPLICATION_JSON_VALUE))
.andExpect(status().isOk())
.andReturn();
}
}
문제 난 그로드 비 REST하지 콩이 있다는 것을 확인하고자하는 반면, 나는이 테스트에 사용하고 상황에 맞는 지금, 모든 콩을로드한다는 것이다 테스트 실행 중에 RestController 빈을 호출하십시오.
@Configuration
@ComponentScan(basePackages = {"com.stuff"},
excludeFilters = {
@Filter(type = FilterType.REGEX, pattern = "com.stuff.web.*")})
public class SpringConfig { ... }
같은 내가 갈거야 분리의 종류를 확인시겠습니까 추가,하지만 난에 노력하고있어 com.stuff.web.MyEndpoint 클래스에 액세스 할 수 없습니다 테스트.
나는 쉽게 찾아 볼 수 있습니까? 상황을 분명하게 설명하면 알려줘.