Я начинаю с 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
в Микронавт ?