Angular2中是否有可能通过单元测试来验证组件选择器?
e.g。
@Component({
selector: 'my-component',
template: '<p>test</p>'
})
export class MyComponent {}
和
....
it(`Component should have selector 'my-component'`, () => {
expect(component.selector).toBe('my-component');
});
答案 0 :(得分:2)
Reflect
元数据来存储和检索装饰器数据。
可以从类中获取元数据并断言它:
const [componentDecorator] = Reflect.getOwnMetadata('annotations', MyComponentClass);
expect(componentDecorator.selector).toBe('my-component');
其中Reflect.getMetadata('annotations', ...)
返回类注释数组。
这需要加载reflect-metadata
或 core-js/es7/reflect
polyfill。此polyfill是Angular的先决条件。