Tengo un código de diseño de hormigas vue
<a-form...> <button @click="submit" </a-form> <script> ... methods: { submit() { return this.axios({ method: "POST", data: this.form }).then(...) } }Quiero crear una prueba e2e, que escriba el formulario y envíelo haciendo clic en el botón.
... cy.get("[data-testid=submit-form").click();pero, ¿cómo puedo esperar cuando el envío de axios llamará y devolverá la llamada? cy.wait() es una mala solución para esto.
use cy.request no es 100% caso de usuario, es activador de javascript
La forma habitual de hacerlo es:
cy.intercept()cy.wait() a la ruta desde 1.Para mostrarlo en un ejemplo:
cy // 1. .intercept('POST', '/change-ad') .as('changeAd'); cy // 2. .get('#save-button') .click(); cy // 3. .wait('@changeAd') .its('response.statusCode') .should('eq', 201);Obviamente, puede verificar otras cosas en la interfaz de usuario después de que haya llegado la respuesta, es decir, después de 3.
Para algunos casos específicos en los que desea verificar cómo reacciona la interfaz de usuario a algunos datos de back-end sin configurar primero los datos de back-end, puede "falsificar" la respuesta (y el código de estado y lo que no) en cy.intercept() . Esto se llama stubing .