2016-04-06 67 views
1

我开始使用Angular2并测试:Jasmine & Karma。我写这工作得很好少数理智的测试,但是当我尝试简单的默认喷油器试验失败:Angular 2基本测试失败

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(...)'一样显示在https://github.com/angular/ angular/blob/master/CHANGELOG.md #break-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/juliemr/ng2-test-seed