Wie unit-Tests, wenn eine eckige 2-Komponente eine weitere Komponente enthält
Ich bin ziemlich neu eckig 2.
Ich habe eine Komponente, die wiederum hat einige andere Komponenten in der Vorlage.
Wie Schreibe ich unit-tests zu überprüfen, ob meine Eltern Komponente aus anderen Komponenten.
Erwähnen, eine Probe oder leitet mich auf eine Ressource wäre wirklich hilfreich.
MyComponent.ts:
import { Component } from '@angular/core';
@Component({
selector: 'my-component',
templateUrl: `<div>
<other-component></other-component>
</div>`
})
export class MyComponent{
}
OtherComponent.ts:
import { Component } from '@angular/core';
@Component({
selector: 'other-component',
templateUrl: `<div>
<h1>Other Component</h1>
</div>`
})
export class OtherComponent{
}
InformationsquelleAutor Chan15 | 2016-11-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um zu testen, ob eine Komponente, wenn Sie erstellt wird, enthält weitere Komponenten:
querySelector
oderquerySelectorAll
zu finden, die die untergeordneten KomponentenIch in der Regel nur überprüfen, dass das element vorhanden ist, und führen Sie dann weitere Tests in der spec für das einzelne Kind Komponente.
Null mit
querySelector
bestimmen, ob die Komponente vorhanden ist. Aus der querySelector MDN:Wenn Sie möchten, um zu überprüfen, dass es mehrere Instanzen der gleichen Kind-Komponente, die Sie verwenden können
querySelectorAll
und überprüfen Sie dielength
Eigenschaft:InformationsquelleAutor silencedmessage
In den meisten Fällen sind Sie nur die Prüfung der äußeren Komponente. Wenn Sie wollen einfach nur eckig zu ignorieren, die inneren Komponenten, die einfachste Möglichkeit ist das hinzufügen der NO_ERRORS_SCHEMA zu Ihrem spec.
import { NO_ERRORS_SCHEMA } '@eckig/core'
Und dann in Ihre Testumgebung.configureTestingModule fügen Sie die Zeile:
schemas: [NO_ERRORS_SCHEMA]
Den tests wird dann ignorieren Sie die Tatsache, dass Sie noch nicht importiert haben, die inneren Komponenten in der Komponente HTML.
Wenn Sie möchten, testen Sie die innere Komponente mit Ihrem äußeren Komponenten, wenn Sie die Winkel-cli, wirst du sehen, dass die Komponente.spec-Datei automatisch generieren für Sie umfasst eine
declarations
array, das ist Teil der TestBed-Konfiguration-Objekt. So alle Sie tun müssen ist, importieren Sie die Datei und fügen Sie die Komponente in Ihre Erklärungen.Also dein Beispiel oben:
Dann in Ihre
describe
block, den Sie haben einebeforeEach
Dann deine Komponenten sollten nun ordnungsgemäß kompiliert ohne Fehler. Wenn Sie möchten, um zu sehen, wie das ganze setup, nur erzeugen Sie ein neues Projekt in Winkel-cli und werfen Sie einen Blick auf das spec-docs, die es generiert.
InformationsquelleAutor Felix Tsai