Angular -mocks - только mock явный запрос. пропустить все непредвиденные запросы
Мне кажется невероятным разочарование в том, что angular -блокирует блокировку всех запросов ПО DEFAULT и заставляя меня "пропускать" то, что я хочу.
Иногда я просто хочу протестировать 1 URL-адрес с макетом, и я должен перепрыгнуть через серьезные обручи для каждой ошибки "Неожиданный запрос".
Я не знаю regex, мне не нравится регулярное выражение, я не хочу использовать регулярное выражение!
Посмотрим на этот отвратительный код, который мне нужен для ОДНОГО простого макета
$httpBackend.whenGET(/\/atlas\/account\/[0-9]+$/)
.respond(atlasAccounts[0]);
$httpBackend.whenGET(/\/scripts$/).passThrough();
$httpBackend.whenGET(/^\w+.*/).passThrough();
$httpBackend.whenPOST(/^\w+.*/).passThrough();
Почему это не может быть просто сведено к одной строке???
$httpBackend.whenGET(/\/atlas\/account\/[0-9]+$/)
.respond(atlasAccounts[0]);
Или даже лучше, почему он не поддерживает проклятые подстановочные знаки? Они пытаются сделать жизнь разработчиков более сложной?
$httpBackend.whenGET("/atlas/account*")
.respond(atlasAccounts[0]);
Это все, что мне нужно, если бы это было просто интуитивно...
Есть ли способ отключить это соглашение "все или ничего" в ngMock и ТОЛЬКО перехватывать URL-адреса, которые я EXPLICITLY высмеиваю?
Ответы
Ответ 1
Сначала добавьте все ваши снимки, а затем, наконец, добавьте сквозной проход для всех. Я делаю что-то подобное в своем приложении и прекрасно работаю:
function run($httpBackend) {
var phones = [{ name: 'phone1' }, { name: 'phone2' }];
// Capture specific request
$httpBackend.whenGET('/phones').respond(function () {
return phones;
});
// Passthrough everything
$httpBackend.whenGET(/[\s\S]*/).passThrough();
}
Это приведет к захвату '/phones'. Если он не будет захвачен, он пройдет через.