как правильно написать URL в службе httpBackend в модульных тестах

#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