0Pricing
Node.js Backend Development Bootcamp · Lektion

Unit-Tests mit Jest

Lernen Sie, mit dem Jest-Testframework isolierte Unit-Tests für einzelne Funktionen und Module zu schreiben.

Unit-Tests mit Jest ist eine kostenlose Node.js Backend Development Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Node.js Backend Development Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Node.js Backend Development Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

What is Unit Testing?

Welcome to unit testing! This is a fundamental practice in software development where individual components or functions of your application are tested in isolation.

Think of it like checking each gear in a clock separately to ensure it works perfectly before assembling the whole mechanism. This helps catch bugs early!

Meet Jest: Your Testing Buddy

For Node.js, Jest is one of the most popular and developer-friendly testing frameworks. It's developed by Facebook and offers a complete, integrated solution for JavaScript testing.

  • Zero Config: Often works out of the box.
  • Fast: Designed for performance.
  • Rich API: Powerful assertion library (matchers) included.
  • Snapshot Testing: Great for UI components.

Installing Jest

Getting started with Jest is easy. You'll install it as a development dependency in your Node.js project. Open your terminal in your project's root directory and run:

npm install --save-dev jest

After installation, you can add a script to your package.json file to easily run your tests:

"scripts": { "test": "jest" }

Our First Function to Test

Let's write a simple function that we want to test. This function will add two numbers. We'll put it in a file named sum.js.

You can run this file directly to see the function in action, but later we'll use Jest to test it automatically!

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

// This allows us to use 'sum' in other files
module.exports = sum;

// Optional: Run this part only if the file is executed directly
if (require.main === module) {
  console.log("Running sum(2, 3):");
  console.log("Result: ", sum(2, 3)); // Expected: 5
}

Structuring Your Test File

Jest looks for test files with specific naming conventions, usually .test.js or .spec.js. Let's create sum.test.js in the same directory.

Inside, we use describe() to group related tests and test() (or it()) for individual test cases. This makes your tests organized and readable.

Making Assertions with Matchers

Inside a test() block, we use expect() combined with a "matcher" to assert that a value meets certain conditions. For example, .toBe() checks for exact equality.

Here's how we'd test our sum function:

const sum = require('./sum');

describe('sum function', () => {
  test('adds 1 + 2 to equal 3', () => {
    expect(sum(1, 2)).toBe(3);
  });

  test('adds 0 + 0 to equal 0', () => {
    expect(sum(0, 0)).toBe(0);
  });

  test('adds negative numbers correctly', () => {
    expect(sum(-1, -2)).toBe(-3);
  });
});

Running Your Tests

Now that you have your sum.js and sum.test.js files, and Jest installed with the script configured, you can run your tests!

Simply type npm test in your terminal. Jest will find your .test.js files, execute them, and report the results. You'll see green if all tests pass!

Handling Async Tests

Many Node.js applications deal with asynchronous operations (like fetching data, database calls). Jest handles these beautifully!

You can use async/await directly in your test functions. Jest will wait for the promise to resolve before completing the test.

function fetchData() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve("Data from API");
    }, 50);
  });
}

module.exports = fetchData;

// Optional: Run this part only if the file is executed directly
if (require.main === module) {
  console.log("Simulating data fetch...");
  fetchData().then(data => console.log("Received: ", data));
}

Writing Async Tests

To test our fetchData function, we'll mark our test function as async. Jest also provides special matchers like .resolves and .rejects for promises.

Using await within your test makes asynchronous code look synchronous, improving readability.

const fetchData = require('./fetchData');

describe('fetchData function', () => {
  test('should return "Data from API"', async () => {
    const data = await fetchData();
    expect(data).toBe('Data from API');
  });

  test('should resolve with specific data', () => {
    return expect(fetchData()).resolves.toBe('Data from API');
  });
});

Jest Matcher Check

Which of the following Jest matchers would you use to check if two objects have the same value (deep comparison), not just if they are the same instance?

Unit Testing with Jest: Recap

Great job! You've learned the basics of unit testing with Jest. We covered:

  • What unit testing is and its benefits.
  • How to install and set up Jest.
  • Structuring tests with describe and test.
  • Making assertions using expect and matchers like .toBe() and .toEqual().
  • Handling asynchronous code with async/await.

Keep practicing and happy testing!

Häufig gestellte Fragen

Ist die Lektion „Unit-Tests mit Jest“ kostenlos?

Ja — der vollständige Text von „Unit-Tests mit Jest“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Node.js Backend Development Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Node.js Backend Development Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Unit-Tests mit Jest“?

Lernen Sie, mit dem Jest-Testframework isolierte Unit-Tests für einzelne Funktionen und Module zu schreiben. Du übst Node.js Backend Development Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Node.js Backend Development Bootcamp zu starten?

Keine Vorkenntnisse erforderlich. Node.js Backend Development Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Unit-Tests mit Jest“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Node.js Backend Development Bootcamp-Lektion Code schreiben und ausführen?

Ja. Jede Node.js Backend Development Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Unit-Tests mit Jest
  2. Integrationstests für API-Endpunkte
  3. Effektive Debugging-Techniken
  4. Mocking und Test-Doubles in Node.js
← Zurück zu Node.js Backend Development Bootcamp