测试是否导出组件并通过Angular 2模块导入模块

时间:2017-02-01 23:08:07

标签: angular karma-jasmine

我为Angular 2中的所有模块编写单元测试。我需要验证是否导入了所有必需的模块以及从模块中导出所有必需的组件。有人知道如何为此编写测试吗?

1 个答案:

答案 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);