2016-04-14 138 views
2

我有一個單元測試,驗證應用程序的APP_ID是一個固定值。問題是,我不知道如何設置APP_ID,以便它不是隨機生成的。沒有提供令牌應用程序

從Angular2球隊的網站上的文檔是有幫助就夠了,但我不知道如果我正確地解釋它:

如果你需要避免隨機生成的值用作應用程序ID ,您可以通過使用此令牌配置根注入器的DI提供程序提供自定義值。

那麼這是否意味着我會將它作爲提供者添加到我的應用程序的引導程序中?

bootstrap(App, [ 
    provide(APP_ID, {name: 'MyApp'}) 
]); 

我懷疑這是遠程關閉。有沒有其他人想出瞭如何設置APP_ID或它甚至用於什麼?

injector.spec.ts

import { 
it, 
inject, 
injectAsync, 
beforeEachProviders, 
TestComponentBuilder 
} from 'angular2/testing'; 
import {APP_ID} from 'angular2/core'; 


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

回答

3

在測試

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

您的實際應用中,你會這樣

bootstrap(App, [ 
    provide(APP_ID, {useValue: 'MyApp'}) 
]); 
+0

尼斯寫吧,好知道我沒離得太遠了。是否有可能導入引導發生的文件,而不是複製'beforeEachProviders'中的'提供(APP_ID,{useValue:'...'})'部分? – BrianRT

+0

請參閱http://stackoverflow.com/a/36354220/217408如何創建提供程序並重新使用它們。 –

相關問題