angular - Angular2 testaa, onko komponentilla oikea valitsin
Onko Angular2:ssa mitään mahdollisuutta tarkistaa komponentin valitsinta yksikkötestillä?
esim.
@Component({
selector: 'my-component',
template: '<p>test</p>'
})
export class MyComponent {}
ja
....
it(`Component should have selector 'my-component'`, () => {
expect(component.selector).toBe('my-component');
});
Vastaus #1
Reflect-metatietoja käyttää Angularin DI tallentaakseen ja hakeakseen koristetiedot.
On mahdollista saada metatietoja luokasta ja vahvistaa ne:
const [componentDecorator] = Reflect.getOwnMetadata('annotations', MyComponentClass);
expect(componentDecorator.selector).toBe('my-component');
Missä Reflect.getMetadata('annotations', ...) palauttaa taulukon luokan annotaatioista.
Tämä vaatii, että reflect-metadata tai core-js/es7/reflect polyfillit ladataan. Tämä polyfill on Angularin edellytys.
