Угловое тестирование без издевательства $ http

0

У меня есть клиент REST, написанный как часть приложения angularJS, для которого я хочу написать тесты; Я пробовал с Жасмин (используя passthrough на $ httpBackend), но не мог заставить его вообще разговаривать с реальной конечной точкой (что является требованием).

Кто-нибудь знает о разумной библиотеке, которая позволяет это? Или, альтернативно, способ борьбы с Жасмином в подчинение?

  • 0
    Вы можете проверить это с помощью теста e2e с транспортиром или чем-то еще
  • 0
    почему бы не использовать Mocha, если вы просто хотите протестировать бэкэнд API остальных
Показать ещё 3 комментария
Теги:
unit-testing
jasmine
automated-tests

1 ответ

0

вам нужно сначала ввести $ httpbackend

describe('MyController', function() {
 var $httpBackend, $rootScope, createController, authRequestHandler;

 // Set up the module
  beforeEach(module('MyApp'));

  beforeEach(inject(function($injector) {
 // Set up the mock http service responses
 $httpBackend = $injector.get('$httpBackend');
 // backend definition common for all tests
 authRequestHandler = $httpBackend.when('GET', '/auth.py')
                        .respond({userId: 'userX'}, {'A-Token': 'xxx'});

 // Get hold of a scope (i.e. the root scope)
 $rootScope = $injector.get('$rootScope');
 // The $controller service is used to create instances of controllers
 var $controller = $injector.get('$controller');

 createController = function() {
   return $controller('MyController', {'$scope' : $rootScope });
 };
   $httpBackend.when('GET', "/api/rest/").respond(data_to_respond);
  }));

следующие сценарии записи

 it('getTypes - should return 3 car manufacturers', function () {
        service.getTypes().then(function(response) {
            //expect will be here
        });
        $httpBackend.flush();
    });
  • 0
    Как я уже сказал в своем вопросе, я не хочу подделывать ответы - я хочу, чтобы мой клиент общался с реальным сервером.
  • 0
    при тестировании невозможно подделать ответ
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню