使用Angular2.0.0-rc.5
我试图运行以下测试但收到错误:
错误:找不到'DynamicTestModule'的NgModule元数据。 (第29行)
此DynamicTestModule
似乎是角度本身的一部分,不是我在项目中引用的模块,也可以在angular.io上的文档页面中找到
import {inject, async, TestBed} from '@angular/core/testing';
import {BrowserDynamicTestingModule, platformBrowserDynamicTesting} from '@angular/platform-browser-dynamic/testing';
describe('AuthService', () => {
beforeEach(() => {
TestBed.initTestEnvironment(
BrowserDynamicTestingModule,
platformBrowserDynamicTesting()
).configureTestingModule({
imports: [
{ngModule: CommonModule, providers: [
... // overrides for testing
]}
]});
});
it('should get and set a token saved in storage', inject([AuthService], (instance: AuthService) => {
instance.token = 'test-token';
expect(instance.token).toEqual('test-token');
}));
});
在Google上搜索错误消息不会返回任何结果,并且他们的更改日志在示例中没有提到这一点。
有没有人看到过这个特定的错误并知道发生了什么,或者您是否可以提供一个使用没有产生此错误的内置DI在2.0.0-rc.5
中测试服务的示例?
答案 0 :(得分:2)
如果使用SystemJS模块加载程序加载角度模块,则应使用单个文件,而不是捆绑包。
在索引文件中加载SystemJS后
<script src="node_modules/systemjs/dist/system.src.js"></script>
加载systemjs.config.js之前
<script src="systemjs.config.js"></script>
你需要设置
<script>System.packageWithIndex = true;</script>
答案 1 :(得分:0)
我遇到了类似的问题:
SCRIPT5022: No NgModule metadata found for 'AppModule'.
对我来说,this angular2 issue comment修复了各种IE版本(特别是IE10)的问题。