2016-04-14 26 views
2

Açısal birim testinde nispeten zayıf bir konumdayım ve basit bir birim testi olarak neyin bana çarptığını önyüklemek için güçlü bir şekilde mücadele ediyorum.

My Sınıf

class CampaignController { 
    constructor($state) { 
     this.$state = $state; 
    } 

    submit() { 
     this.$state.transitionTo('some.state'); 
    } 
} 
export { CampaignController }; 

Benim Testi Buraya ne eksik bu hatayı

Error: [$injector:unpr] Unknown provider: $stateProvider <- $state 

elde sonunda

import { expect } from 'chai'; 
import angular from 'angular'; 
import { CampaignController } from './campaign.controller'; 

let component; 

describe('campaign-controller', function() { 

    var $state; 

    beforeEach(inject(function (_$state_) { 
     $state = _$state_; 
     component = new CampaignController($state); 
    })); 


    it('should update state on submit',() => { 
     component.submit(); 
     expect($state.current.name).to.be('some.state'); 
    }); 
}); 

?

cevap

2

beforeEach'inize herhangi bir modül yüklemiyorsunuz, dolayısıyla açısal yönlendirici kullanılamıyor. En azından, ui.router modülünü yüklemeniz gerekir.

Örneğin, seninkinden önce ayrı beforeEach bloğu olabilir:

Benzer bir mesele burada bildirildi
beforeEach(module('ui.router')); 

beforeEach(inject(function (_$state_) { 
    $state = _$state_; 
    component = new CampaignController($state); 
})); 
+1

: http://stackoverflow.com/questions/28737371/error-injectorunpr-unknown-provider- stateprovider hal –

İlgili konular