래
내가 노력하고,부하 테스트에서 봄의 부트(v2.3.8)응용 프로그램, 만 이라는 구성요소에서는 기본적인 봄 응용 프로그램-컨텍스트입니다. 조금 더 구체적으로 말씀드리고 싶 로드에서 테스트,봄 응용 프로그램-컨텍스트를 구성하는 적어도 로깅,로드 의 외부성,유효성 검사(을 통해 Java 검증 API)고 @Value
-폐쇄 하지 않고 MVC,Data JPA,etc. 서,테스트하고 싶을 통해 제약-주석이 인터페이스(예: @NotBlank
다), @Service
는 운동 로컬 파일시스템(MVC,Data JPA,또는 다른 봄 부팅 테스트"를 조각")를 하나의 데이터 구성원을 통해 채워집 @Value
.
가 아무 소용이 없고,많은 주석(그리고 몇 가지의 고유의 특성을)에서,서로 다른 조합 하위 집합니다:예를들면 @SpringBootTest
, @Configuration
, @ContextConfiguration
, @TestConfiguration
, @TypeExcludeFilters
니다,등등. 예를 들어:
@Validated
public interface SomeService {
String someMethod (@NotBlank String someParam);
}
...
@Service
public class SomeServiceImpl implements SomeService {
@Value("${some.value}")
private String someValue;
@Override
public String someMethod(String someParam) {
// do something with local file-system,
// with someValue in hand, and
// knowing someParam not blank
}
}
...
@SpringBootTest(classes={SomeServiceImpl.class},webEnvironment=WebEnvironment.NONE)
class SomeServiceTests {
@Autowired
private SomeService someService;
@Test
void throwConstraintViolationException_whenSomeParamNil() {
assertThrows(
ConstraintViolationException.class,
()->someService.someMethod(new String()));
}
...
}
이 예제에서,특성 classes
의 @SpringBootTest
짐을 인용 클래스만을 가린의 모든 기본 (로깅,검증,etc.) 는 또한 것입니다.
다음과 같은 발췌문에서,크레이그의 벽'"봄 부팅 활동,"을 것 같다 정확히 무엇을 나는 찾지만,그것의 주요한 공구(@SpringApplicationConfiguration
)은 지금 사용되지 않습니다(그리고 그것은 공식적으로 권장 보충- @SpringBootTest
-행동하지 않습니다 똑같이 적어도 특성에 관한 classes
):
지만@ContextConfiguration 큰 일을 로드하는 봄 응용 프로그램 컨텍스트,그것을 만드는 방법이 간단한 응용 프로그램과 전체 봄 부팅 치료에...SpringApplication 뿐만 아니라드 응용 프로그램 컨텍스트,하지만 또한 로깅,로드 외장 속성을(응용 프로그램.특성 또는 응용 프로그램입니다.yml)및 다른 기능을 봄 부팅합니다. 를 사용하는 경우@ContextConfiguration 얻지 못할 것이 그 특징이다. 그 기능에의 통합을 테스트할 수 있습 교환@ContextConfiguration 봄 부@SpringApplicationConfiguration:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes=AddressBookConfiguration.class)
public class AddressServiceTests {
...
}
있다,그는"전체는 봄 부팅 처리"하지만 추가하면 단지 클래스(@Service
로)그는 인용하지 않음(모든 @Component
, @Controller
고 @Repository
자신의 도메인).
어떻게 이렇게 오늘의 없이 사용되지 않는 @SpringApplicationConfiguration
?
업데이트
내가 원래 명시된 내지 않음(크레이그의 벽')를 들어(즉 @SpringBootTest(classes={SomeServiceImpl.class},webEnvironment=WebEnvironment.NONE)
지만,로드 인용 클래스에 가려진 모든 의 기본 응용 프로그램-컨텍스트는 봄 부팅이 일반적으로 load. 를 통해 추가 실험,내가 찾는 문확하지 않는 모든 지만, 일부 의 기본을 가려져 있습니다 즉,유효성 검사(의 구현 Java 검증 API). 다시 말해서,로그,로드 의 외부성,그리고@Value-연결하는,참으로,로드/구성되어 있습니다. 나는 생각해야 했는데,혼란에서의 모든 내가 많은 순열/시도합니다.