Heim > Web-Frontend > js-Tutorial > Hauptteil

Clean Code verstehen: Unit-Tests ⚡

PHPz
Freigeben: 2024-08-29 14:00:43
Original
1031 Leute haben es durchsucht

Understanding Clean Code: Unit Tests ⚡

In der Softwareentwicklung sind Unit-Tests eine entscheidende Praxis, die dabei hilft, die Korrektheit Ihres Codes sicherzustellen.

Kapitel 9 von Clean Code: A Handbook of Agile Software Craftsmanship mit dem Titel „Unit Tests“ befasst sich mit den Prinzipien und Praktiken zum Schreiben sauberer und effektiver Unit Tests.

In diesem Artikel fassen wir die wichtigsten Erkenntnisse aus dem Kapitel zusammen und stellen JavaScript-Beispiele zur Verfügung, um diese Konzepte zu veranschaulichen.


? Warum Unit-Tests wichtig sind

Bei Unit-Tests werden Tests für einzelne Einheiten oder Komponenten Ihres Codes geschrieben, um zu überprüfen, ob sie wie erwartet funktionieren. Die Hauptziele von Unit-Tests sind:

1- Fehler frühzeitig erkennen: Probleme während der Entwicklung erkennen, bevor sie in die Produktion gelangen.

2- Refactoring erleichtern: Stellen Sie sicher, dass Änderungen an Ihrem Code die vorhandene Funktionalität nicht beeinträchtigen.

3- Verhalten des Dokumentcodes: Dienen als Dokumentation dafür, wie Ihr Code verwendet werden soll.


? Prinzipien effektiver Unit-Tests

⚡ Testen Sie jeweils eine Sache

Jeder Unit-Test sollte sich auf einen einzelnen Aspekt der Funktionalität konzentrieren. Dies erleichtert das Verständnis und die Wartung von Tests. Wenn ein Test fehlschlägt, wissen Sie genau, wo das Problem liegt.

function add(a, b) {
    return a + b;
}

// Test case for the add function
function testAdd() {
    // Test adding positive numbers
    assertEqual(add(2, 3), 5, '2 + 3 should be 5');
    // Test adding negative numbers
    assertEqual(add(-1, -1), -2, '-1 + -1 should be -2');
}

// A simple assertion function
function assertEqual(actual, expected, message) {
    if (actual !== expected) {
        throw new Error(message);
    }
}
Nach dem Login kopieren

⚡ Machen Sie Tests lesbar

Ihre Tests sollten leicht zu lesen und zu verstehen sein. Verwenden Sie aussagekräftige Namen für Ihre Testfunktionen und klare Aussagen. Dies hilft anderen (und Ihnen selbst), schnell zu verstehen, was jeder Test überprüft.

function isEven(number) {
    return number % 2 === 0;
}

// Descriptive test function
function testIsEven() {
    assertEqual(isEven(4), true, '4 should be even');
    assertEqual(isEven(5), false, '5 should be odd');
}
Nach dem Login kopieren

⚡ Verwenden Sie klare und aussagekräftige Namen

Namen von Testfällen sollten beschreiben, was sie testen. Dies verbessert die Lesbarkeit und Wartbarkeit Ihrer Tests.

function calculateTotalPrice(items) {
    return items.reduce((total, item) => total + item.price, 0);
}

// Descriptive test case names
function testCalculateTotalPrice() {
    assertEqual(calculateTotalPrice([{ price: 10 }, { price: 20 }]), 30, 'Total price should be 30 for items costing 10 and 20');
    assertEqual(calculateTotalPrice([{ price: 5 }]), 5, 'Total price should be 5 for a single item costing 5');
}
Nach dem Login kopieren

⚡ Halten Sie Tests unabhängig

Jeder Test sollte unabhängig von anderen sein. Tests, die auf dem gemeinsamen Status basieren, können zu unzuverlässigen Tests führen und das Debuggen erschweren.

function multiply(a, b) {
    return a * b;
}

// Independent test cases
function testMultiply() {
    assertEqual(multiply(2, 3), 6, '2 * 3 should be 6');
    assertEqual(multiply(0, 10), 0, '0 * 10 should be 0');
}
Nach dem Login kopieren

⚡ Verwenden Sie Mocks und Stubs angemessen

Mocks und Stubs können dabei helfen, die zu testende Codeeinheit zu isolieren, indem sie Abhängigkeiten simulieren. Setzen Sie sie jedoch mit Bedacht ein, um zu komplizierte Tests zu vermeiden.

// Example of using a mock for a database call
function getUser(id) {
    // Imagine this function makes a database call
    return database.getUserById(id);
}

function testGetUser() {
    const mockDatabase = {
        getUserById: (id) => ({ id, name: 'John Doe' }),
    };

    const result = getUser(1, mockDatabase);
    assertEqual(result.name, 'John Doe', 'User name should be John Doe');
}
Nach dem Login kopieren

⚡ Automatisieren Sie Tests

Automatisieren Sie die Ausführung Ihrer Unit-Tests, um sicherzustellen, dass sie regelmäßig ausgeführt werden. Tools für die kontinuierliche Integration (CI) können dabei helfen, Ihre Tests automatisch auszuführen, wenn Änderungen vorgenommen werden.

Wenn Sie ein Test-Framework wie Jest verwenden, können Sie ein Skript in Ihrer package.json einrichten:

"scripts": {
    "test": "jest"
}
Nach dem Login kopieren

Durch Ausführen von npm test werden alle Ihre Tests ausgeführt und Feedback zu deren Status bereitgestellt.


Abschluss

Das Schreiben sauberer und effektiver Unit-Tests ist für die Aufrechterhaltung eines qualitativ hochwertigen Codes unerlässlich.

Indem Sie die in Kapitel 9 des Clean Code dargelegten Grundsätze befolgen, können Sie sicherstellen, dass Ihre Tests zuverlässig, verständlich und wertvoll sind.

Die Implementierung dieser Vorgehensweisen in Ihrem JavaScript-Code verbessert nicht nur die Qualität Ihrer Tests, sondern trägt auch zu einer robusteren und wartbareren Codebasis bei.

Viel Spaß beim Codieren!

Das obige ist der detaillierte Inhalt vonClean Code verstehen: Unit-Tests ⚡. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage