토리맘의 한글라이즈 프로젝트 logo 토리맘의 한글라이즈 프로젝트

스프링 클라우드 컨트랙트 공식 레퍼런스를 한글로 번역한 문서입니다.

전체 목차는 여기에 있습니다.


컨슈머 입장에서는 프로듀서가 구현을 완료하고 스텁stub을 배포할 때까지 마냥 기다리고 싶진 않을 거다. 이 문제는 스텁stub을 런타임에 생성하면 해결된다.

프로듀서가 명세contract를 정의할 때는, 자동 생성된 테스트가 통과해야만 스텁stub을 배포할 수 있다. 하지만 테스트가 실제로 통과하기 전에 컨슈머에서 스텁stub을 조회해갈 수 있게 만들고 싶을 수도 있다. 이럴 땐, 관련 명세contract를 개발 중in-progress으로 설정해주면 된다. 자세한 내용은 개발 중인in-progress 명세contract 섹션에서 확인할 수 있다. 이렇게 하면 테스트는 생성되지 않고 스텁stub만 만들어진다.

컨슈머는 런타임에 스텁stub을 생성하도록 스위치를 켜주면 된다. 그러면 Stub Runner는 기존의 모든 스텁stub 매핑 정보를 무시하고, 모든 명세contract 정의에 대한 스텁stub을 새로 생성한다. 아니면 시스템 프로퍼티 stubrunner.generate-stubs를 전달해도 된다. 다음은 스위치를 설정하는 예시다:

Annotation JUnit 4 Rule JUnit 5 Extension
@AutoConfigureStubRunner(
stubsMode = StubRunnerProperties.StubsMode.REMOTE,
		repositoryRoot = "stubs://file://location/to/the/contracts",
		ids = "com.example:some-producer",
		generateStubs = true)
@Rule
	public StubRunnerRule rule = new StubRunnerRule()
			.downloadStub("com.example:some-producer")
			.repoRoot("stubs://file://location/to/the/contracts")
			.stubsMode(StubRunnerProperties.StubsMode.REMOTE)
			.withGenerateStubs(true);
@RegisterExtension
	public StubRunnerExtension stubRunnerExtension = new StubRunnerExtension()
			.downloadStub("com.example:some-producer")
			.repoRoot("stubs://file://location/to/the/contracts")
			.stubsMode(StubRunnerProperties.StubsMode.REMOTE)
			.withGenerateStubs(true);

Next :
3.6.10. Fail On No Stubs
스텁 없이 Stub Runner 띄우기

전체 목차는 여기에 있습니다.

<< >>

TOP