SORU
6 Aralık 2013, Cuma


Açısal uı router birim testi (leri Birleşik Devletleri)

Bazı sorunlar birim Açısal uı router üzerinde kurulu olan uygulama, yönlendirici test yaşıyorum. Test etmek istediğim devlet geçişler URL uygun (daha karmaşık testler daha sonra olacaktır, ama bu başlıyorum.) değişiklik olup olmadığı

İşte benim uygulama kodu: ilgili bölümü

angular.module('scrapbooks')
 .config( function($stateProvider){
    $stateProvider.state('splash', {
       url: "/splash/",
       templateUrl: "/app/splash/splash.tpl.html",
       controller: "SplashCtrl"
    })
 })

Ve test kodu:

it("should change to the splash state", function(){
  inject(function($state, $rootScope){
     $rootScope.$apply(function(){
       $state.go("splash");
     });
     expect($state.current.name).to.equal("splash");
  })
})

Stackoverflow benzer sorular (ve resmi uı router test kodu) devlet dolar sarma öneririz.git yeter uygulayın $Ara. Ama yapmadım ve devlet hala güncelleme yok. devlet. $mevcut.adı boş kalır.

CEVAP
12 Ocak 2014, Pazar


Nasıl da bu sorunu yaşıyor ve sonunda buldum.

İşte örnek bir devlet

angular.module('myApp', ['ui.router'])
.config(['$stateProvider', function($stateProvider) {
    $stateProvider.state('myState', {
        url: '/state/:id',
        templateUrl: 'template.html',
        controller: 'MyCtrl',
        resolve: {
            data: ['myService', function(service) {
                return service.findAll();
            }]
        }
    });
}]);

Birim test aşağıda URL w/ parametreler Test, ve kendi bağımlılıkları enjekte eden giderir yürütme şunlar olacak

describe('myApp/myState', function() {

  var $rootScope, $state, $injector, myServiceMock, state = 'myState';

  beforeEach(function() {

    module('myApp', function($provide) {
      $provide.value('myService', myServiceMock = {});
    });

    inject(function(_$rootScope_, _$state_, _$injector_, $templateCache) {
      $rootScope = _$rootScope_;
      $state = _$state_;
      $injector = _$injector_;

      // We need add the template entry into the templateCache if we ever
      // specify a templateUrl
      $templateCache.put('template.html', '');
    })
  });

  it('should respond to URL', function() {
    expect($state.href(state, { id: 1 })).toEqual('#/state/1');
  });

  it('should resolve data', function() {
    myServiceMock.findAll = jasmine.createSpy('findAll').andReturn('findAll');

    $state.go(state);
    $rootScope.$digest();
    expect($state.current.name).toBe(state);

    // Call invoke to inject dependencies and run function
    expect($injector.invoke($state.current.resolve.data)).toBe('findAll');
  });
});

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • backyardjay

    backyardjay

    8 ŞUBAT 2009
  • Joseph Hayhoe

    Joseph Hayho

    20 Mayıs 2010
  • The Verge

    The Verge

    8 AĞUSTOS 2006