Невозможно запустить mockttp с Cypress

Я пытаюсь запустить mockttp с кипарисом. Я использовал пример, указанный в проекте github. Я изменил порт для работы на 3000, но получаю сообщение об ошибке: « Невозможно добавить правила до запуска сервера» .

      /*global cy:true,before:true*/
/// <reference path="../../node_modules/cypress/types/index.d.ts" />

const superagent = require("superagent");
const mockServer = require("mockttp").getLocal();

describe('mockttp test' , () => {
    beforeEach(() => {
        mockServer.start(3000);
    });
    afterEach(() => {
        mockServer.stop();
    });
  it("lets you mock requests, and assert on the results", async () => {
    // Mock your endpoints
    const mockedPath = mockServer.forGet("/mocked-path");
    
    // ERROR OCCURS HERE
    await mockedPath.thenReply(200, "A mocked response");

    // Make a request
    const response = await superagent.get("http://localhost:3000/mocked-path");

    // Assert on the results
    expect(response.text).to.equal("A mocked response");
  });
});

1 ответ

Вам нужно подождать, пока сервер действительно не запустится, прежде чем запускать тест, ожидая промисов, возвращенных mockServer.start()(и по .stop()).

Вы можете сделать свои функции beforeEach и afterEach asyncа потом awaitэти строки, или вы можете просто добавить returnчтобы вернуть обещание, чтобы Мокко ждал их автоматически.

Другие вопросы по тегам