#javascript #node.js #cypress
Вопрос:
Мне нужно дать логику для автоматизации тестового случая для приведенного ниже сценария. Но я не уверен, как к этому подойти. Я ставлю каждый раз новую случайную сумму, и мне нужно поставить условие, чтобы случайная предложенная сумма не была меньше последней предложенной суммы в БД, если она меньше суммы в системе, она должна выдать мне предупреждение и т. Д. Это мой подход:
const minval = 100; const maxval = 100000; // divide by 100, then round down, then multiply by 100, e.g.: 1234 / 100 = 12.34, floor(12.34) = 12, 12 * 100 = 1200. Need these two steps because floor(1234) = 1234 const placeBidAmount = Math.floor((Math.random() * maxval) / 100) * 100 minval; // in response body we have price amount and that should be equal const listPrice = placeBidAmount; const vehicleId = "aaaa"; const platformId = "xxx"; const platformUserId = 0;[![enter image description here][1]][1] it.only("place a bid on the selected auction", () =gt; { cy.request({ method: "POST", url: `${Cypress.env('apiHostForEndpoints')}/bid`, headers: { Authorization: Cypress.env("token"), "content-type": Cypress.env("contentType"), }, body: { id: vehicleId, bid: placeBidAmount, auctionPlatformId: platformId, auctionPlatformUserId: platformUserId, }, failOnStatusCode: false, }).should((res) =gt; { expect(res.status).to.eq(200); expect(res.body.id).eq(vehicleId); expect(res.body).to.have.property("id", vehicleId); expect(res.body).to.have.property("price", placeBidAmount); expect(res.body).to.have.property("winningBidPlatformId", platformId); expect(res.body.price).to.be.equal(listPrice); // assert // .isNotNull(res.body.id, "is not null") // .and.isNotNull(res.body.createdAt, "is not null"); }); });
Комментарии:
1. Почему вы хотите делать ставки на случайные суммы? Это рецепт для неудачных тестов и разочаровывающей отладки.
2. Моя идея состоит в том, чтобы сделать ставку на случайную сумму, потому что мы никогда не знаем, какую сумму предложит пользователь. Пожалуйста, дайте свое предложение, мой подход может быть неправильным
3. Не знаете, какую сумму предложит пользователь?
4. да, это приложение для ставок.
5. Я думаю, что Джонршарп имеет в виду, что предложение случайной суммы приведет к ошибкам, и более верным способом проверить эту функциональность было бы либо издеваться над ответом на запрос и всегда использовать суммы выше/ниже этого, либо брать фактическую сумму и использовать суммы немного выше/ниже этого для вашей проверки.