Disons que j'ai un composant comme ce qui suit:angulaire: test de l'unité que la production d'un composant n'est pas émis
@Component({
selector: 'example',
template: ` `
})
export class ExampleComponent {
value: any;
@Output() output: EventEmitter<any> = new EventEmitter();
onValueChange(newValue: any) {
if (newValue !== this.value) {
this.value = newValue;
this.output.emit(newValue);
}
}
}
J'ai écrit un test comme celui ci-dessous. Je veux tester que si onValueChange
est appelé avec la même valeur que value
, le composant ne produira pas la valeur en double. Existe-t-il une meilleure pratique pour les tests unitaires qu'un abonnement observable n'est jamais appelé? Alors que ce que j'ai fait techniquement fonctionne, c'est un peu hacky.
describe('ExampleComponent',() => {
it('should not output duplicate values',() => {
const component = new ExampleComponent();
component.value = 1;
component.output.subscribe(value => {
// if the output is not triggered then we'll never reach this
// point and the test will pass
expect(true).toEqual(false);
});
component.onValueChange(1);
});
});