Eh bien, ce que vous voulez vraiment faire ici est d'écrire le test d'intégration pour vos MainComponent
openModal
. Donc, vous devriez vous demander, que fait cette méthode?
Règle de pouce pour l'écriture des tests d'automatisation: Vous devriez toujours se concentrer sur les tests que l'unité (MainComponent
dans ce cas) fait. Tout le reste (SecondComponent
) dans ce cas, peut être moqué.
Maintenant, pour répondre à la question que vous allez vous demander en écrivant le test est la méthode openModal
appelle une fonction nommée showModal
sur la propriété secondComponent
que vous avez sur votre MainComponent
.
Ainsi, selon la Règle de Pouce, nous moquons la méthode showModal
sur la secondComponent
que nous pouvons obtenir de la propriété de componentInstance
fixture
.
Ainsi, vos tests d'intégration pour ce qui devrait ressembler à ce qui suit:
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { MainComponent } from './main.component';
import { ModalComponent } from './../modal/modal.component';
import { SecondComponent } from './../second/second.component';
describe('MainComponent',() => {
let component: MainComponent;
let fixture: ComponentFixture<MainComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ MainComponent, ModalComponent, SecondComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MainComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should be created',() => {
expect(component).toBeTruthy();
});
describe('openModal',() => {
it('should call the `showModal` method on the `secondComponent` property we have on our component',() => {
// Arrange
let secondComponent = component.secondComponent;
let spy = spyOn(secondComponent, 'showModal');
// Act
component.openModal();
// Assert
expect(spy).toHaveBeenCalled();
});
});
});
Hope this helps!
** composant ** est un composant de banc d'essai? – Swoox
Non, c'est le composant principal que je veux tester – Ish
Lire https://angular.io/guide/testing#test-a-component Ceci est un guide pour tester un composant. Vous pouvez vous moquer de vos modules, composants et services. Peut également injecter vos services dans un * it *. Par exemple 'fixture.detectChanges();' détecter les changements sur votre composant de test afin que vous puissiez voir si votre modal a été appelé. – Swoox