Как проверить случайно сгенерированное значение в PACT.netC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Гость
 Как проверить случайно сгенерированное значение в PACT.net

Сообщение Гость »


I have an API provder at http:///pay. This API accepts a POST method with a body like this:

Код: Выделить всё

{     "amount": 115,     "currency" "EUR" } 
and if everything is correct it gives a response like this:

Код: Выделить всё

{     "id":"4f34e5ef-80c0-4696-8d2c-4cc755b31861",     "status":true,     "description":"" } 
I created a consumer test in this way:

Код: Выделить всё

[Fact] public async void PaymentIsOk() {     PaymentRequest paymentRequest = new PaymentRequest(115, "EUR");     PaymentResponse paymentResponse =  new PaymentResponse {id = Guid.NewGuid().ToString(), status = true};     this.pactBuilder         .UponReceiving("a request for paying an order")             .WithRequest(HttpMethod.Post, "/pay")             .WithHeader("Content-Type", "application/json")             .WithJsonBody(paymentRequest)         .WillRespond()             .WithStatus(HttpStatusCode.OK)             .WithJsonBody(paymentResponse);     this.pactBuilder.Verify(ctx =>     {         // Act         var paymentGatewayClient = new PaymentGatewayClient(ctx.MockServerUri.ToString());         var paymentGatewayClientResponse = paymentGatewayClient.Pay(paymentRequest);         // Assert         // how can I test for Id?         Assert.Empty(paymentGatewayClientResponse.description);         Assert.True(paymentGatewayClientResponse.status);     }); } 
I thought the id returned from the mocked method would be equal to the id I generated for

Код: Выделить всё

paymentResponse
(line 4). Unfortunately, inside the Pay method, a new random GUUID is generated for the id, so at the assert moment,

Код: Выделить всё

paymentGatewayClientResponse.id
is different from

Код: Выделить всё

paymentResponse.id
.

Am I missing something in the reasoning?

Sure a possible solution would be to force

Код: Выделить всё

paymentResponse.id = paymentGatewayClientResponse.id
and then assert but it looks a little bit as cheating.


Источник: https://stackoverflow.com/questions/781 ... n-pact-net
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»