저는 스프링 테스트 중 일부에서 @Autowired MockHttpServletRequest
을 사용합니다. TestNG는 테스트 프레임 워크로 사용됩니다. 클래스에 하나의 테스트 메소드 만 있으면 잘 작동합니다. 그러나 여러 테스트 메소드가있는 경우 첫 번째 실행 테스트 만 내 MockHttpServletRequest를 사용합니다. 내가 예와 함께 설명 보자autowired MockHttpServletRequest가 여러 테스트가 작동하지 않습니까?
test1()
패스에서
@WebAppConfiguration
@ContextConfiguration({"classpath:applicationContext.xml"})
public class FooTest extends AbstractTestNGSpringContextTests {
@Autowired
private MockHttpServletRequest servletRequest;
@Test
public void test1() {
assertEquals(((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(), servletRequest);
}
@Test
public void test2() {
assertEquals(((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest(), servletRequest);
}
}
하지만 test2()
실패! 테스트 메소드를 개별적으로 실행하면 둘 다 통과합니다. 테스트를 함께 실행하면 왜 하나의 테스트가 실패합니까?
코드를 파헤려고했지만 테스트 메소드를 실행 한 후 요청 속성을 다시 설정하는 것처럼 보였습니다.하지만이를 끌 수있는 방법을 찾지 못했습니다. 내 봄 버전은 3.2.8.RELEASE입니다.