#javascript #angularjs #unit-testing #https #httpbackend
#javascript #angularjs #модульное тестирование #https #httpbackend
Вопрос:
Я хочу имитировать $httpBackend.whenGet
запрос.
Я могу написать полный URL-адрес в виде строки, но я не могу uderstend с последней частью, где я определяю QueryExpression: "('120' != 1 AND '106' != 5)"
Пример запроса с консоли, который работает:
http://localhost:9002/api/application/datapage?dataPageType=application.group.datapage.GroupDataPageQueryamp;pageSize=-1amp;propertySelection=groupName,groupIdamp;queryExpression=('120' != 1 AND '106' != 5)amp;startIndex=0
если я передам это как строку в $httpBackend.whenGET( '/api/application/datapage?dataPageType=application.group.datapage.GroupDataPageQueryamp;pageSize=-1amp;propertySelection=groupName,groupIdamp;queryExpression=('120' != 1 AND '106' != 5)amp;startIndex=0' )
,
у меня неожиданная ошибка в моих модульных тестах
Error: Unexpected request: GET /api/application/datapage?dataPageType=application.group.datapage.GroupDataPageQueryamp;pageSize=-1amp;propertySelection=groupName,groupIdamp;queryExpression=('120' != 1 AND '106' != 5)amp;startIndex=0
Я определяю эту проблему с неправильным форматом queryExpression
.
Ответ №1:
В первом случае, когда не так важно имитировать полный URL-адрес для запроса, я могу использовать регулярное выражение в $httpBackend.whenGet
сервисе для сопоставления параметров без запроса.
Второе — это то, что я спросил, и решение простое, с использованием
escape-символа.
Итак, результат:
/api/application/datapage?dataPageType=application.group.datapage.GroupDataPageQueryamp;pageSize=-1amp;propertySelection=groupName,groupIdamp;queryExpression=('120' != 1 AND '106' != 5)amp;startIndex=0