Wählen Sie Ihre Cookie-Einstellungen aus

Wir verwenden essentielle Cookies und ähnliche Tools, die für die Bereitstellung unserer Website und Services erforderlich sind. Wir verwenden Performance-Cookies, um anonyme Statistiken zu sammeln, damit wir verstehen können, wie Kunden unsere Website nutzen, und Verbesserungen vornehmen können. Essentielle Cookies können nicht deaktiviert werden, aber Sie können auf „Anpassen“ oder „Ablehnen“ klicken, um Performance-Cookies abzulehnen.

Wenn Sie damit einverstanden sind, verwenden AWS und zugelassene Drittanbieter auch Cookies, um nützliche Features der Website bereitzustellen, Ihre Präferenzen zu speichern und relevante Inhalte, einschließlich relevanter Werbung, anzuzeigen. Um alle nicht notwendigen Cookies zu akzeptieren oder abzulehnen, klicken Sie auf „Akzeptieren“ oder „Ablehnen“. Um detailliertere Entscheidungen zu treffen, klicken Sie auf „Anpassen“.

Führen Sie Komponententests für eine Node.js -Anwendung aus, GitHub indem Sie AWS CodeBuild - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Führen Sie Komponententests für eine Node.js -Anwendung aus, GitHub indem Sie AWS CodeBuild

Erstellt von Thomas Scott (AWS) und Jean-Baptiste Guillois () AWS

Übersicht

Dieses Muster enthält Beispielquellcode und wichtige Unit-Test-Komponenten für ein Node.js -Spiel. API Es enthält auch Anweisungen zum Ausführen dieser Komponententests von einem GitHub Repository aus AWS CodeBuild, indem Sie sie als Teil Ihres CI/CD-Workflows (Continuous Integration and Continuous Delivery) verwenden.

Unit-Tests sind ein Softwareentwicklungsprozess, bei dem verschiedene Teile einer Anwendung, sogenannte Units, einzeln und unabhängig voneinander auf ihren korrekten Betrieb getestet werden. Tests validieren die Qualität des Codes und bestätigen, dass er erwartungsgemäß funktioniert. Andere Entwickler können sich auch leicht mit Ihrer Codebasis vertraut machen, indem sie die Tests konsultieren. Unit-Tests reduzieren die future Refactoring-Zeit, helfen Ingenieuren dabei, sich schneller mit Ihrer Codebasis vertraut zu machen, und schaffen Vertrauen in das erwartete Verhalten.

Beim Komponententest werden einzelne Funktionen getestet, einschließlich AWS Lambda-Funktionen. Um Unit-Tests zu erstellen, benötigen Sie ein Test-Framework und eine Methode zur Validierung von Tests (Assertions). Die Codebeispiele in diesem Muster verwenden das Mocha-Testframework und die Chai-Assertionsbibliothek

Weitere Informationen zu Komponententests und Beispiele für Testkomponenten finden Sie im Abschnitt Zusätzliche Informationen.

Voraussetzungen und Einschränkungen

Architektur

Dieses Muster implementiert die Architektur, die im folgenden Diagramm dargestellt ist.

AWSCloud-Architektur für die Ausführung von Komponententests mit CodeBuild und einem GitHub Repository

Tools

Tools

  • Git ist ein Versionskontrollsystem, das Sie für die Codeentwicklung verwenden können.

  • AWS CodeBuild ist ein vollständig verwalteter Service für die kontinuierliche Integration, der Quellcode kompiliert, Tests ausführt und Softwarepakete generiert, die direkt bereitgestellt werden können. Damit CodeBuild müssen Sie Ihre eigenen Build-Server nicht bereitstellen, verwalten und skalieren. CodeBuild skaliert kontinuierlich und verarbeitet mehrere Builds gleichzeitig, sodass Ihre Builds nicht in einer Warteschlange warten müssen. Mit den vorkonfigurierten Build-Umgebungen gelingt der Einstieg leicht. Jedoch können Sie auch benutzerdefinierte Build-Umgebungen mit Ihren eigenen Entwicklungstools erstellen. Mit CodeBuild werden Ihnen die von Ihnen genutzten Rechenressourcen minutengenau berechnet.

Code

Der Quellcode für dieses Muster ist im Repository der Beispielanwendung Game Unit Test verfügbar. GitHub Sie können aus diesem Beispiel Ihr eigenes GitHub Repository erstellen (Option 1) oder das Beispiel-Repository direkt (Option 2) für dieses Muster verwenden. Folgen Sie den Anweisungen für jede Option im nächsten Abschnitt. Welche Option Sie wählen, hängt von Ihrem Anwendungsfall ab.

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie Ihr eigenes GitHub Repository auf der Grundlage des Beispielprojekts.

  1. Loggen Sie sich ein bei GitHub.

  2. Erstellen Sie ein neues Repository. Anweisungen finden Sie in der GitHub Dokumentation.

  3. Klonen Sie das Beispiel-Repository und übertragen Sie es in das neue Repository in Ihrem Konto.

App-Entwickler, AWS Administrator, AWS DevOps

Erstellen Sie ein neues CodeBuild Projekt.

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die CodeBuild Konsole unter https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Wählen Sie Create build project (Build-Projekt erstellen) aus.

  3. Geben Sie im Abschnitt Projektkonfiguration als Projektname -js ein. aws-tests-sample-node

  4. Wählen Sie im Abschnitt Quelle für Quellanbieter die Option GitHub.

  5. Wählen Sie für Repository die Option Repository in my GitHub account aus und fügen Sie es dann in Ihr neu erstelltes GitHub Repository ein. URL

  6. Wählen Sie im Abschnitt Primäre Webhook-Ereignisse die Option Jedes Mal neu erstellen, wenn eine Codeänderung in dieses Repository übertragen wird.

  7. Wählen Sie als Ereignistyp PUSH. 

  8. Wählen Sie im Bereich Umgebung die Optionen Verwaltetes Image, Amazon Linux und das neueste Image aus.

  9. Behalten Sie die Standardeinstellungen für alle anderen Optionen bei und wählen Sie dann Build-Projekt erstellen.

App-Entwickler, AWS Administrator, AWS DevOps

Starte den Build.

Klicken Sie auf der Seite Review (Überprüfen) auf Start build (Build starten), um den Build auszuführen.

App-Entwickler, AWS Administrator, AWS DevOps

Option 1 — Führen Sie Komponententests in Ihrem persönlichen GitHub Repository durch mit CodeBuild

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie Ihr eigenes GitHub Repository auf der Grundlage des Beispielprojekts.

  1. Loggen Sie sich ein bei GitHub.

  2. Erstellen Sie ein neues Repository. Anweisungen finden Sie in der GitHub Dokumentation.

  3. Klonen Sie das Beispiel-Repository und übertragen Sie es in das neue Repository in Ihrem Konto.

App-Entwickler, AWS Administrator, AWS DevOps

Erstellen Sie ein neues CodeBuild Projekt.

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die CodeBuild Konsole unter https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Wählen Sie Create build project (Build-Projekt erstellen) aus.

  3. Geben Sie im Abschnitt Projektkonfiguration als Projektname -js ein. aws-tests-sample-node

  4. Wählen Sie im Abschnitt Quelle für Quellanbieter die Option GitHub.

  5. Wählen Sie für Repository die Option Repository in my GitHub account aus und fügen Sie es dann in Ihr neu erstelltes GitHub Repository ein. URL

  6. Wählen Sie im Abschnitt Primäre Webhook-Ereignisse die Option Jedes Mal neu erstellen, wenn eine Codeänderung in dieses Repository übertragen wird.

  7. Wählen Sie als Ereignistyp PUSH. 

  8. Wählen Sie im Bereich Umgebung die Optionen Verwaltetes Image, Amazon Linux und das neueste Image aus.

  9. Behalten Sie die Standardeinstellungen für alle anderen Optionen bei und wählen Sie dann Build-Projekt erstellen.

App-Entwickler, AWS Administrator, AWS DevOps

Starte den Build.

Klicken Sie auf der Seite Review (Überprüfen) auf Start build (Build starten), um den Build auszuführen.

App-Entwickler, AWS Administrator, AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie ein neues CodeBuild Build-Projekt.

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die CodeBuild Konsole unter https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Wählen Sie Create build project (Build-Projekt erstellen) aus.

  3. Geben Sie im Abschnitt Projektkonfiguration als Projektname -js ein. aws-tests-sample-node

  4. Wählen Sie im Abschnitt Quelle für Quellanbieter die Option GitHub.

  5. Wählen Sie für Repository die Option Öffentliches Repository aus, und fügen Sie dann Folgendes einURL: https://github.com/aws-samples/node-js-tests-sample.

  6. Wählen Sie im Bereich Umgebung die Optionen Verwaltetes Image, Amazon Linux und das neueste Image aus.

  7. Behalten Sie die Standardeinstellungen für alle anderen Optionen bei und wählen Sie dann Build-Projekt erstellen.

App-Entwickler, AWS Administrator, AWS DevOps

Starte den Build.

Klicken Sie auf der Seite Review (Überprüfen) auf Start build (Build starten), um den Build auszuführen.

App-Entwickler, AWS Administrator, AWS DevOps

Option 2 — Führen Sie Komponententests auf einem öffentlichen Repository aus mit CodeBuild

AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie ein neues CodeBuild Build-Projekt.

  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die CodeBuild Konsole unter https://console.aws.amazon.com/codesuite/codebuild/home.

  2. Wählen Sie Create build project (Build-Projekt erstellen) aus.

  3. Geben Sie im Abschnitt Projektkonfiguration als Projektname -js ein. aws-tests-sample-node

  4. Wählen Sie im Abschnitt Quelle für Quellanbieter die Option GitHub.

  5. Wählen Sie für Repository die Option Öffentliches Repository aus, und fügen Sie dann Folgendes einURL: https://github.com/aws-samples/node-js-tests-sample.

  6. Wählen Sie im Bereich Umgebung die Optionen Verwaltetes Image, Amazon Linux und das neueste Image aus.

  7. Behalten Sie die Standardeinstellungen für alle anderen Optionen bei und wählen Sie dann Build-Projekt erstellen.

App-Entwickler, AWS Administrator, AWS DevOps

Starte den Build.

Klicken Sie auf der Seite Review (Überprüfen) auf Start build (Build starten), um den Build auszuführen.

App-Entwickler, AWS Administrator, AWS DevOps
AufgabeBeschreibungErforderliche Fähigkeiten

Testergebnisse anzeigen.

Überprüfen Sie in der CodeBuild Konsole die Unit-Testergebnisse des CodeBuild Jobs. Sie sollten mit den Ergebnissen im Abschnitt Zusätzliche Informationen übereinstimmen.

Diese Ergebnisse validieren die GitHub Repository-Integration mit CodeBuild. 

App-Entwickler, AWS Administrator, AWS DevOps

Wenden Sie einen Webhook an.

Sie können jetzt einen Webhook anwenden, sodass Sie automatisch einen Build starten können, wenn Sie Codeänderungen in den Hauptzweig Ihres Repositorys übertragen. Anweisungen finden Sie in der CodeBuild Dokumentation.

App-Entwickler, AWS Administrator, AWS DevOps

Analysieren Sie die Komponententests

AufgabeBeschreibungErforderliche Fähigkeiten

Testergebnisse anzeigen.

Überprüfen Sie in der CodeBuild Konsole die Unit-Testergebnisse des CodeBuild Jobs. Sie sollten mit den Ergebnissen im Abschnitt Zusätzliche Informationen übereinstimmen.

Diese Ergebnisse validieren die GitHub Repository-Integration mit CodeBuild. 

App-Entwickler, AWS Administrator, AWS DevOps

Wenden Sie einen Webhook an.

Sie können jetzt einen Webhook anwenden, sodass Sie automatisch einen Build starten können, wenn Sie Codeänderungen in den Hauptzweig Ihres Repositorys übertragen. Anweisungen finden Sie in der CodeBuild Dokumentation.

App-Entwickler, AWS Administrator, AWS DevOps

Zugehörige Ressourcen

Zusätzliche Informationen

Ergebnisse des Komponententests

In der CodeBuild Konsole sollten Sie die folgenden Testergebnisse sehen, nachdem das Projekt erfolgreich erstellt wurde. 

Erwartete Ergebnisse des Komponententests

Beispiele für Komponententests

In diesem Abschnitt werden die vier Arten von Testkomponenten beschrieben, die bei Unit-Tests verwendet werden: Assertions, Spies, Stubs und Mocks. Er enthält eine kurze Erklärung und ein Codebeispiel für jede Komponente. 

Behauptungen

Eine Behauptung wird verwendet, um ein erwartetes Ergebnis zu verifizieren. Dies ist eine wichtige Testkomponente, da sie die erwartete Antwort einer bestimmten Funktion validiert. Die folgende Beispiel-Assertion bestätigt, dass die zurückgegebene ID bei der Initialisierung eines neuen Spiels zwischen 0 und 1000 liegt.

const { expect } = require('chai'); const { Game } = require('../src/index'); describe('Game Function Group', () => { it('Check that the Game ID is between 0 and 1000', function() { const game = new Game(); expect(game.id).is.above(0).but.below(1000) }); });

Spione

Ein Spion wird verwendet, um zu beobachten, was passiert, wenn eine Funktion ausgeführt wird. Beispielsweise möchten Sie möglicherweise überprüfen, ob die Funktion korrekt aufgerufen wurde. Das folgende Beispiel zeigt, dass Start- und Stop-Methoden für ein Game-Klassenobjekt aufgerufen werden.

const { expect } = require('chai'); const { spy } = require('sinon'); const { Game } = require('../src/index'); describe('Game Function Group', () => { it('should verify that the correct function is called', () => { const spyStart = spy(Game.prototype, "start"); const spyStop = spy(Game.prototype, "stop"); const game = new Game(); game.start(); game.stop(); expect(spyStart.called).to.be.true expect(spyStop.called).to.be.true }); });

Stubs

Ein Stub wird verwendet, um die Standardantwort einer Funktion zu überschreiben. Dies ist besonders nützlich, wenn die Funktion eine externe Anfrage stellt, da Sie vermeiden möchten, externe Anfragen aus Komponententests zu stellen. (Externe Anfragen eignen sich besser für Integrationstests, mit denen Anfragen zwischen verschiedenen Komponenten physisch getestet werden können.) Im folgenden Beispiel erzwingt ein Stub eine Rückgabe-ID von der getIdFunktion.

const { expect } = require('chai'); const {.stub } = require('sinon'); const { Game } = require('../src/index'); describe('Game Function Group', () => { it('Check that the Game ID is between 0 and 1000', function() { let generateIdStub = stub(Game.prototype, 'getId').returns(999999); const game = new Game(); expect(game.getId).is.equal(999999); generateIdStub.restore(); }); });

Verspottet

Ein Mock ist eine gefälschte Methode mit einem vorprogrammierten Verhalten zum Testen verschiedener Szenarien. Ein Mock kann als erweiterte Form eines Stubs betrachtet werden und kann mehrere Aufgaben gleichzeitig ausführen. Im folgenden Beispiel wird ein Mock verwendet, um drei Szenarien zu validieren:

  • Die Funktion wird aufgerufen 

  • Die Funktion wird mit Argumenten aufgerufen

  • Die Funktion gibt die Ganzzahl 9 zurück

const { expect } = require('chai'); const {.mock } = require('sinon'); const { Game } = require('../src/index'); describe('Game Function Group', () => { it('Check that the Game ID is between 0 and 1000', function() { let mock = mock(Game.prototype).expects('getId').withArgs().returns(9); const game = new Game(); const id = get.getId(); mock.verify(); expect(id).is.equal(9); }); });
DatenschutzNutzungsbedingungen für die WebsiteCookie-Einstellungen
© 2025, Amazon Web Services, Inc. oder Tochtergesellschaften. Alle Rechte vorbehalten.