У меня та же конечная точка API, которая будет возвращать разные ответы в зависимости от получаемых данных. Я пытаюсь смоделировать API для моих тестов пользовательского интерфейса.
Итак, в основном в моем тесте пользовательского интерфейса:
нажмите кнопку в пользовательском интерфейсе ---> вызывает фиктивный API в бэкэнде с полезной нагрузкой 1 ----> фиктивный API дает ответ 1 (и это входная полезная нагрузка) ---> вызывает тот же фиктивный API ---> получить ответ 2 -> действие пользовательского интерфейса происходит на основе ответа
Мне нужно смоделировать ответ API, и вот чтоЯ попытался
// button to click that triggers the API endpoint
$('action').click();
// this is the mock API that checks if the input payload has the word `INPUT1`
// reponse expected from the dummy API is stored in `response1.xml`
let scope = nock('http://localhost:4002')
.post('/', /INPUT1\\/)
.reply(200, (uri, requestBody) => {
console.log('uri', uri)
console.log('requestbody', requestBody)
fs.readFile(join(process.cwd(), 'test', 'response1.xml'))
})
// dummy API called again with prev nock response
// input payload is data in file `response1.xml`
// should check if the input payload has the word `INPUT2\`
// mocked output for the API is in file response2.xml
nock('http://localhost:4002')
.post('/', /INPUT2\\/)
.reply(200, (uri, requestBody) => {
fs.readFile(join(process.cwd(), 'test/', 'response2.xml'))
})
// when the app sees response response2.xml, "done" button appears on screen
// click on `done` button
$('#done).click
Когда я попробовал это, он не смог сказать API not reachable
. Не уверен, правильно ли я использую API. API, который я пытаюсь смоделировать, является фиктивным API. Это возможно с nock?