[SPRING] TestNG로 인한 스프링 의존성 삽입
SPRINGTestNG로 인한 스프링 의존성 삽입
Spring은 JUnit을 아주 잘 지원합니다. RunWith 및 ContextConfiguration 주석을 사용하면 상황이 매우 직관적으로 보입니다.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:dao-context.xml")
이 테스트는 Eclipse & Maven에서 올바르게 실행될 수 있습니다. TestNG에 비슷한 내용이 있는지 궁금합니다. 이 "차세대"프레임 워크로 이동하는 것을 고려하고 있지만 Spring을 테스트하기위한 일치 항목을 찾지 못했습니다.
해결법
-
==============================
1.그것은 TestNG에서도 잘 작동합니다. 테스트 클래스는 다음 클래스 중 하나를 확장해야합니다.
그것은 TestNG에서도 잘 작동합니다. 테스트 클래스는 다음 클래스 중 하나를 확장해야합니다.
-
==============================
2.나를 위해 일한 예제는 다음과 같습니다.
나를 위해 일한 예제는 다음과 같습니다.
import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; import org.testng.annotations.Test; @Test @ContextConfiguration(locations = {"classpath:applicationContext.xml"}) public class TestValidation extends AbstractTestNGSpringContextTests { public void testNullParamValidation() { // Testing code goes here! } }
-
==============================
3.Spring과 TestNG는 잘 작동하지만 몇 가지 사항을 알고 있어야합니다. AbstractTestNGSpringContextTests를 서브 클래 싱하는 것 외에도 표준 TestNG setup / teardown 주석과 상호 작용하는 방법을 알고 있어야합니다.
Spring과 TestNG는 잘 작동하지만 몇 가지 사항을 알고 있어야합니다. AbstractTestNGSpringContextTests를 서브 클래 싱하는 것 외에도 표준 TestNG setup / teardown 주석과 상호 작용하는 방법을 알고 있어야합니다.
TestNG에는 4 단계의 설정이 있습니다.
이는 정확히 예상대로 발생합니다 (자체 문서화 API의 훌륭한 예). 이것들은 모두 "dependsOnMethods"라는 선택적인 값을 가지며, 이것은 같은 레벨에있는 메소드의 이름 또는 이름 인 String 또는 String []을 취할 수 있습니다.
AbstractTestNGSpringContextTests 클래스에는 SpringTestContextPrepareTestInstance라는 BeforeClass 주석이있는 메서드가 있습니다.이 메서드는 autowired 클래스를 사용하고 있는지 여부에 따라 설정 메서드를 설정해야합니다. 메소드의 경우 autowiring에 대해 걱정할 필요가 없습니다. 테스트 클래스가 클래스 메소드 이전에 설정되었을 때 발생하기 때문입니다.
이것은 BeforeSuite로 주석 된 메소드에서 autowired 클래스를 사용하는 방법에 대한 의문을 남깁니다. springTestContextPrepareTestInstance를 수동으로 호출하여이 작업을 수행 할 수 있습니다. 기본적으로이 작업을 수행하지 않는 동안 여러 번 성공적으로 수행했습니다.
예를 들어, Arup의 예제를 수정 한 버전입니다.
import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.testng.AbstractTestNGSpringContextTests; import org.testng.annotations.Test; @Test @ContextConfiguration(locations = {"classpath:applicationContext.xml"}) public class TestValidation extends AbstractTestNGSpringContextTests { @Autowired private IAutowiredService autowiredService; @BeforeClass(dependsOnMethods={"springTestContextPrepareTestInstance"}) public void setupParamValidation(){ // Test class setup code with autowired classes goes here } @Test public void testNullParamValidation() { // Testing code goes here! } }
from https://stackoverflow.com/questions/2608528/spring-dependency-injection-with-testng by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 봄 부팅 + Oauth2 클라이언트 자격 증명 (0) | 2018.12.29 |
---|---|
[SPRING] Spring Data JPA를 Spring Container 외부에서 어떻게 사용합니까? (0) | 2018.12.29 |
[SPRING] 스프링 3 표현식 언어는 부동산 자리 표시 자와 어떻게 상호 작용합니까? (0) | 2018.12.29 |
[SPRING] Spring 부트가없는 Spring Cloud 구성 클라이언트 (0) | 2018.12.29 |
[SPRING] Tomcat & Spring Web - 클래스를 찾을 수 없음 예외 org.springframework.web.context.ContextLoaderListener (0) | 2018.12.29 |