Пакт-тест с использованием микронавта - PullRequest
0 голосов
/ 08 мая 2019

Я начинаю с Pact и Micronaut , и я хочу запустить файл Pact . Примеры, которые я нашел, написаны в Spring Boot , поэтому я хотел бы знать, что будет переводом в Micronaut проект. Специально для запуска Pact file

Мой Потребитель класс в Микронавт это:

    public class HelloControllerTest {
        @Rule
        public PactProviderRuleMk2 provider = new PactProviderRuleMk2("StudentProvider", "localhost", 8112, this);

        @Pact(consumer = "StudentClient")
        public RequestResponsePact createPact(PactDslWithProvider builder) {
            Map<String, String> headers = new HashMap();
            headers.put("Content-Type", "application/json");


            DslPart result = new PactDslJsonBody()
                .stringType("id", "Student1")
                .stringType("fistName","Ranga Karanam")
                .stringType("lastName","Hiker, Programmer and Architect")
                .asBody();

            return builder
                    .given("There is a Student with ID Student1")
                    .uponReceiving("A Student with ID Student1 and firstName Ranga Karanam")
                    .path("/student/Student1")
                    .method("GET")
                    .willRespondWith()
                    .status(200)
                    .headers(headers)
                    .body(result).toPact();
        }

        @Test
        @PactVerification()
        public void doTest() {
            System.out.println(provider.getPort());
            HelloController helloController = new HelloController(provider.getPort());
            helloController.getUser("Student1");
        }
    }

A Spring Boot пример, класс, который запускает Pact file

    @RunWith(SpringRestPactRunner.class)
    @Provider("user-service")
    @PactFolder("pacts")
    @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
    public class ContractTest {

      @TestTarget
      public final Target target = new SpringBootHttpTarget();

      @State("User 1 exists")
      public void user1Exists() {
        // nothing to do, real service is used
      }

    }

И это то, что я создал в Micronaut :

    @ExtendWith(MicronautJunit5Extension.class)
    @MicronautTest
    @Provider("StudentProvider")
    @PactFolder("pacts")
    public class StudentContractTest {

      @TestTarget
      public final Target target = new HttpTarget(8111);

      @State("There is a Student with ID Student1")
      public void student1() {
        System.out.println("There is a Student with ID Student1" );
      }

    }

Имеет ли смысл перевод ? Как мне указать webEnvironmnent в Микронавт ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...