我为Angular 2中的所有模块编写单元测试。我需要验证是否导入了所有必需的模块以及从模块中导出所有必需的组件。有人知道如何为此编写测试吗?
答案 0 :(得分:1)
这预先假定与模块装饰器注释的匹配,可以通过Reflect
元数据以与定义相同的方式检索它们。
考虑到模块类NgModule
上只有一个装饰器,它应该是:
import { AppModule } from '...';
import { SomeModule, SomeComponent } from '...';
...
const appModuleAnnotation = Reflect.getMetadata('annotations', AppModule)[0];
expect(SomeModule).toEqual(jasmine.any(Function));
expect(appModuleAnnotation.imports.includes(SomeModule)).toBe(true);
expect(SomeComponent).toEqual(jasmine.any(Function));
expect(appModuleAnnotation.declarations.includes(SomeComponent)).toBe(true);