При тестировании моей службы REST появляется следующее сообщение об ошибке:
Ошибка: [$ resource: badcfg] запрос http://errors.angularjs.org/1.4.6/ $ resource/badcfg? P0 = array & p1 = object & p2 = GET & p3 = http% 3A% 2F% 2Flocalhost% 3A63831% 2Fapi% 2Fnames in http://localhost: 60694/js/angular.js (строка 68)
Я не знаю, как решить проблему. Возможно ли, что приложение находится в другом порту localhost как WebApi?
В приведенном ниже коде показан блок-тест:
describe('Test', function () {
var $httpBackend, $rootScope, crudService, baseUrl, respValue;
beforeEach(function () {
module('testApp');
inject(function (_$httpBackend_, _$rootScope_, _CrudService_, _baseUrl_) {
$httpBackend = _$httpBackend_;
$rootScope = _$rootScope_;
crudService = _CrudService_;
baseUrl = _baseUrl_;
});
});
it('should make a request to the backend', function () {
$httpBackend.whenGET('views/home.html').respond(200);
$httpBackend.expectGET(baseUrl + '/api/names').respond(200, [{
Id: '1', fname: 'John', lname: 'Doe', age: 30, GroupId: 1
}]);
$rootScope.$digest();
crudService.getAllNames().$promise.then(function (response) {
respValue = response;
});
$httpBackend.flush();
expect(respValue).toContain([{
Id: '1', fname: 'John', lname: 'Doe', age: 30, GroupId: 1
}]);
});
РЕДАКТИРОВАТЬ:
Я попробовал ответ ниже и добавил expect()
-method, и появилось следующее сообщение об ошибке:
Ожидаемый [d ({Id: '1', fname: 'John', lname: 'Doe', возраст: 30, GroupId: 1}), $ prom: Promise ({$$ state: Object ({status: 1, pending: undefined, value:, processScheduled: false})}), $ resolved: true], чтобы содержать [Object ({Id: '1', fname: 'John', lname: 'Doe', age: 30, GroupId: 1})].
Скорее всего, эта линия является проблемой
$httpBackend.expectGET(baseUrl + '/api/names').respond(200, {
Id: '1', fname: 'John', lname: 'Doe', age: 30, GroupId: 1
});
Ответ должен был быть массивом, но это объект. Можете ли вы изменить эту строку на
$httpBackend.expectGET(baseUrl + '/api/names').respond(200, [{
Id: '1', fname: 'John', lname: 'Doe', age: 30, GroupId: 1
}]);
и попробовать.
SPEC HAS NO EXPECTATIONS should make a request to the backend
бэкэнду. Я знаю, что мне нужен метод wait expect()
. Но я не знаю, как я могу проверить ожидаемый запрос GET ?!
expectGET
тест GET, не будет выполнено GET. Вы можете проверить это, комментируя вызов getAllNames
. Если ничего не выходит из строя, сработало ожидание GET.