2016-04-29 2 views
2

Я использую модуль wheresrhys fetch-mock npm для запуска функционального тестирования в моем приложении. Я хотел бы высмеять выборку с помощью метода POST и конкретной полезной нагрузки.Как я могу получить запрос на отправку с полезной нагрузкой

Это будет выглядеть примерно так:

fetchMock.mock({ 
     routes: { 
      name: 'LoginSuccess', 
      matcher: "https://myurl", 
      method: 'POST', 
      payload: { 
       params:{User: "[email protected]", Password: "password"} 
      }, 
      response: { 
       result:{ 
        message: "Successful login", 
        credentials: "XXXXXXXXXXXXX" 
       } 
      } 
     } 
    }); 

Я хотел бы проверить полезную нагрузку моей выборки и дать ответ соответственно. Например, я мог бы имитировать один логин, когда пользователь вводит неверный пароль, затем они снова пытаются отправить правильную информацию и получить доступ. Тот же URL-адрес, разные полезные нагрузки, разные ответы.

Возможно ли это? Я знаю, что можно проверить метод извлечения, но я хотел бы сделать то же самое с полезной нагрузкой.

Или есть лучший способ сделать это?

Я не нашел решение в readme модуля или в тестовом разделе the fetch-mock package.

ответ

1
fetchMock.mock({ 
    routes: [{ 
      name: 'LoginSuccess', 
      matcher: function(url, opts) { 
       return (url=="https://myurl" && opts && opts.params && opts.params.User=="[email protected]" && opts.params.Password=="password"); 
      }, 
      response: { 
       result:{ 
        message: "Successful login", 
        credentials: "XXXXXXXXXXXXX" 
       } 
      } 
     }, { 
      name: 'LoginFail', 
      matcher: function(url, opts) { 
       return (url=="https://myurl" && opts && opts.params && opts.params.User=="[email protected]" && opts.params.Password!=="password"); 
      }, 
      response: { 
       result:{ 
        message: "Unsuccessful login" 
       } 
      } 
    }] 
}); 
+0

Возможно, требуется свойство 'routes'? Для меня это было просто отправкой объекта в качестве аргумента с именем, совпадением и т. Д. – alayor