2016-04-06 3 views
1

を失敗しました。私はうまく働いたいくつかの健全性テストを書いたが、私はシンプルなデフォルトのインジェクタのテストをしようとすると、それは失敗します。角度2基本的なテストは、私がAngular2とテストを使い始めるのです

using-injector.spec.ts 

describe('default test injector',() => { 
    it('should provide default id', inject([APP_ID], (id) => { 
    expect(id).toBe('a'); 
    })); 
}); 

私はカルマに表示されるエラー:任意のヒントは非常に

をいただければ幸いです

Failed: No provider for Token AppId! 
Error: DI Exception 
    at NoProviderError.BaseException [as constructor] (C:/Users/f 
ocuments/dev/node_modules/angular2/bundles/angular2.js:7587:21) ... 

+1

あなたが '' setTestProviders(...)電話しました角度/ blob/master/CHANGELOG.md#breaking-changes-6? –

+0

どのようにAPP_IDを定義しますか? –

+0

サービスをインポートしましたか?インジェクタを使用する代わりに、新しいキーボードを使用してサービスをインスタンス化することができます。 – philoniare

答えて

1

beforeEachProviders機能内にAPP_IDと指定します。

beforeEachProviders(() => [ 
    APP_ID 
]); 

次に、それを注入できるはずです。

0

私のテストで

import {setBaseTestProviders} from 'angular2/testing'; 
import { 
    TEST_BROWSER_PLATFORM_PROVIDERS, 
    TEST_BROWSER_APPLICATION_PROVIDERS 
} from 'angular2/platform/testing/browser'; 
setBaseTestProviders(TEST_BROWSER_PLATFORM_PROVIDERS, 
        TEST_BROWSER_APPLICATION_PROVIDERS); 

を輸入して働きました。 全体的には、私は、このインポートが見る「カルマ・テスト・shim.js」にすべきだと思います。https://github.com/angular/に示すよう https://github.com/juliemr/ng2-test-seed

関連する問題