Весенний облачный контракт-заглушка как конечная точка отдыха http - PullRequest
2 голосов
/ 05 апреля 2019

Я пытаюсь настроить заглушку-заглушку контракта Spring как толстую банку с потребителем или конечную точку http REST, на которую мои службы могут отправлять запрос и в конечном итоге получать оцененный ответ.

В идеале я бы предпочел последний вариант, в котором потребитель мог бы использовать заглушку для управления взаимодействиями.Мои тесты от потребителей до окурков местных производителей работают как положено.Моя компиляция не удалась, когда я добавил необходимые аннотации в основной класс для заглушки.Я думаю, что мне не хватает какой-либо конфигурации или настройки, необходимой потребителю для запуска заглушки либо в качестве конечной точки http REST, либо для распознавания в ее m2.

Компиляция приложения завершается неудачно, @EnableStubRunnerServer сообщает следующее:

ConsumerApplication.java:[8,60] package org.springframework.cloud.contract.stubrunner.server does not exist
ConsumerApplication.java:[15,2] cannot find symbol
[ERROR] symbol: class EnableStubRunnerServer

ConsumerApplication.java:

@SpringBootApplication
@EnableWebMvc
@EnableStubRunnerServer
@Slf4j

public class ConsumerApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }
}

application.properties (Consumer):

stubrunner.ids=com.somecompany.somegroup:producer:0.0.1-SNAPSHOT:stubs:8081
stubrunner.stubsMode=REMOTE
server.ssl.key-store-password=password
server.ssl.key-password=password
server.ssl.trust-store-password=password
server.port=8081

Test.java: - Этот тест работает

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK)
@AutoConfigureMockMvc
@AutoConfigureJsonTesters
@AutoConfigureStubRunner( ids = "com.somecompany.somegroup:producer:+:stubs:8081", 
    stubsMode = StubRunnerProperties.StubsMode.LOCAL)
@DirtiesContext
public class ContractControllerTest extends AbstractTest {

}

pom:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-contract-stub-runner</artifactId>
    <scope>test</scope>
</dependency>

1 Ответ

0 голосов
/ 05 апреля 2019

Поскольку вы пытаетесь добавить тестовый код в основной, рабочий код, вы должны изменить

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-contract-stub-runner</artifactId>
    <scope>test</scope>
</dependency>

на

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-contract-stub-runner</artifactId>
</dependency>
...