Bird
Raised Fist0
Node.jsframework~5 mins

Test lifecycle hooks (before, after) in Node.js - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the before hook in testing?
The before hook runs once before all tests in a suite. It is used to set up things needed for the tests, like initializing data or starting a server.
Click to reveal answer
beginner
How does the after hook help in test suites?
The after hook runs once after all tests in a suite. It is used to clean up resources like closing database connections or stopping servers.
Click to reveal answer
intermediate
What is the difference between before and beforeEach hooks?
before runs once before all tests, while beforeEach runs before each individual test. Use beforeEach to reset state before every test.
Click to reveal answer
intermediate
In Node.js testing frameworks like Mocha, when would you use afterEach?
Use afterEach to run cleanup code after every test, such as resetting mocks or clearing temporary data to keep tests isolated.
Click to reveal answer
beginner
Why are lifecycle hooks important in automated testing?
Lifecycle hooks help organize setup and cleanup tasks, making tests reliable and easier to maintain by avoiding repeated code and ensuring a clean test environment.
Click to reveal answer
Which hook runs once before all tests in a suite?
AafterEach
Bafter
CbeforeEach
Dbefore
What is the main use of the 'after' hook?
ARun cleanup after all tests
BInitialize test data
CRun before each test
DSkip tests
Which hook runs before every single test?
AbeforeEach
Bafter
Cbefore
DafterEach
If you want to reset mocks after each test, which hook should you use?
AbeforeEach
Bafter
CafterEach
Dbefore
Why avoid putting setup code inside each test instead of using lifecycle hooks?
AIt makes tests slower
BIt leads to repeated code and harder maintenance
CIt disables test reporting
DIt causes tests to fail
Explain how before and after hooks help manage test setup and cleanup in Node.js testing.
Think about what you do before and after a group of tasks in real life.
You got /4 concepts.
    Describe the difference between beforeEach and afterEach hooks and when you would use them.
    Consider how you prepare and clean your workspace before and after each small task.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of the before hook in Node.js testing frameworks like Mocha?
      easy
      A. To run setup code once before all tests in a suite
      B. To run cleanup code after each test
      C. To run code before each individual test
      D. To skip a test conditionally

      Solution

      1. Step 1: Understand the role of before hook

        The before hook runs once before all tests in a test suite to prepare the environment.
      2. Step 2: Differentiate from other hooks

        beforeEach runs before each test, and after runs after all tests, so they do not match the question.
      3. Final Answer:

        To run setup code once before all tests in a suite -> Option A
      4. Quick Check:

        before = setup once before all tests [OK]
      Hint: Remember: before = once before all tests [OK]
      Common Mistakes:
      • Confusing before with beforeEach
      • Thinking before runs after tests
      • Mixing before with afterEach
      2. Which of the following is the correct syntax to define a beforeEach hook in Mocha?
      easy
      A. before_each(() => { /* setup code */ });
      B. beforeEach(() => { /* setup code */ });
      C. beforeEach {}
      D. beforeEach: function() { /* setup code */ }

      Solution

      1. Step 1: Recall Mocha hook syntax

        Mocha uses functions like beforeEach(() => { ... }) to define hooks.
      2. Step 2: Check each option

        beforeEach(() => { /* setup code */ }); uses correct arrow function syntax. before_each(() => { /* setup code */ }); uses invalid function name. beforeEach {} is incomplete syntax. beforeEach: function() { /* setup code */ } uses incorrect object notation.
      3. Final Answer:

        beforeEach(() => { /* setup code */ }); -> Option B
      4. Quick Check:

        Correct hook syntax uses function call with callback [OK]
      Hint: Use camelCase and parentheses for hooks [OK]
      Common Mistakes:
      • Using underscores instead of camelCase
      • Omitting parentheses
      • Using object notation instead of function call
      3. Consider this Mocha test code snippet:
      let count = 0;
      before(() => { count += 1; });
      after(() => { count += 10; });
      it('test 1', () => { count += 100; });
      it('test 2', () => { count += 1000; });
      What is the final value of count after all tests run?
      medium
      A. 1110
      B. 1112
      C. 111
      D. 1111

      Solution

      1. Step 1: Calculate increments in order

        before runs once: count = 0 + 1 = 1.
        Then test 1: count = 1 + 100 = 101.
        Then test 2: count = 101 + 1000 = 1101.
        Finally after: count = 1101 + 10 = 1111.
      2. Step 2: Confirm no other increments

        No beforeEach or afterEach hooks affect count, so final is 1111.
      3. Final Answer:

        1111 -> Option D
      4. Quick Check:

        Sum increments: 1 + 100 + 1000 + 10 = 1111 [OK]
      Hint: Add increments in hook and test order [OK]
      Common Mistakes:
      • Adding after hook before tests
      • Forgetting before hook runs once
      • Confusing beforeEach with before
      4. Given this Mocha test code:
      before(() => { console.log('Setup'); });
      after(() => { console.log('Cleanup'); });
      
      it('test 1', () => { console.log('Test 1'); });
      
      it('test 2', () => { console.log('Test 2'); });
      What is the correct order of console output?
      medium
      A. Test 1, Test 2, Setup, Cleanup
      B. Test 1, Setup, Test 2, Cleanup
      C. Setup, Test 1, Test 2, Cleanup
      D. Setup, Test 1, Cleanup, Test 2

      Solution

      1. Step 1: Understand hook execution order

        before runs once before all tests, so 'Setup' prints first.
      2. Step 2: Tests run in order, then after hook

        Tests print 'Test 1' then 'Test 2'. After all tests, after runs printing 'Cleanup'.
      3. Final Answer:

        Setup, Test 1, Test 2, Cleanup -> Option C
      4. Quick Check:

        before -> tests -> after = Setup, Test 1, Test 2, Cleanup [OK]
      Hint: before runs once first; after runs once last [OK]
      Common Mistakes:
      • Assuming after runs after each test
      • Mixing test order
      • Thinking before runs before each test
      5. You want to open a database connection once before all tests and close it once after all tests. Which hook pair should you use in Mocha?
      hard
      A. before to open and after to close
      B. beforeEach to open and afterEach to close
      C. after to open and before to close
      D. beforeEach to open and after to close

      Solution

      1. Step 1: Identify when to open connection

        Opening once before all tests means using before hook.
      2. Step 2: Identify when to close connection

        Closing once after all tests means using after hook.
      3. Final Answer:

        before to open and after to close -> Option A
      4. Quick Check:

        Open once before all, close once after all [OK]
      Hint: Use before/after for once-only setup/cleanup [OK]
      Common Mistakes:
      • Using beforeEach/afterEach causing repeated open/close
      • Reversing before and after roles
      • Mixing hooks for different purposes
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard