2015-08-27 8 views
2

У меня возникла проблема с тестированием моего приложения-узла с использованием Nock. Я записываю все запросы через nock.recorder.rec, но среди них есть множественный запрос. Я использую form-data. Этот модуль поставил границу , чтобы запросить тело, когда я пользуюсь функцией form.append. Проблема в том, что граница всегда различна, и когда я запускаю тесты с записанными данными, Nock не может найти совпадение для запроса (потому что боевое тело в запросе не было тем, что было при записи). Что может быть сделано? Извините за мой плохой английский.Данные Nock + multipart form = Нет соответствия для запроса

+0

я могу сделать грязный хак: перед вызовом 'form.append' метод записи' form._boundary = 'myboundary''. В этом случае граница всегда статична и тесты пройдут. Но статическая граница может быть плохим решением. Может быть, вручную создать границу по определенному алгоритму? –

ответ

1

Я столкнулся с подобной проблемой. Что вы можете сделать, так это использовать второй аргумент как функцию и сопоставить объект, который вы пытаетесь отправить в виде данных формы. Пример:

nock('localhost') 
    .post('/url', function(body) { 
    return JSON.stringify(body) === JSON.stringify(params); 
    }) 
    .reply(200, 'some data'); 

Более подробно о том, что в документации здесь: https://github.com/pgte/nock#specifying-request-body