Bird
Raised Fist0
PyTesttesting~10 mins

First PyTest test - Test Execution Trace

Choose your learning style10 modes available
Test Overview

This test checks if the addition of two numbers works correctly using PyTest. It verifies that 2 + 3 equals 5.

Test Code - PyTest
PyTest
import pytest

def test_addition():
    result = 2 + 3
    assert result == 5
Execution Trace - 5 Steps
StepActionSystem StateAssertionResult
1Test startsPyTest test runner is ready to execute tests—PASS
2Calls test_addition functionInside test function, variables initialized—PASS
3Calculates result = 2 + 3result variable holds value 5—PASS
4Checks assertion assert result == 5Comparing result (5) with expected value (5)Assert that result equals 5PASS
5Test ends successfullyTest runner marks test as passed—PASS
Failure Scenario
Failing Condition: If the assertion result == 5 fails (for example, result is not 5)
Execution Trace Quiz - 3 Questions
Test your understanding
What does the assertion in the test check?
AIf result is greater than 5
BIf 2 + 3 equals 6
CIf 2 + 3 equals 5
DIf result is less than 5
Key Result
Always write simple assertions that clearly check expected results. This helps catch errors early and makes tests easy to understand.

Practice

(1/5)
1. What does PyTest look for to identify a test function?
easy
A. Functions decorated with @pytest.test
B. Functions ending with _test
C. Functions starting with test_
D. Functions containing assert keyword

Solution

  1. Step 1: Understand PyTest naming convention

    PyTest automatically finds functions whose names start with test_.
  2. Step 2: Compare options with PyTest rules

    Only functions starting with test_ are recognized as tests by default.
  3. Final Answer:

    Functions starting with test_ -> Option C
  4. Quick Check:

    PyTest test function = starts with test_ [OK]
Hint: Look for functions starting with test_ to find tests [OK]
Common Mistakes:
  • Thinking functions ending with _test are tests
  • Believing assert keyword alone marks a test
  • Assuming decorators are needed for basic tests
2. Which of the following is the correct syntax for a simple PyTest test function?
easy
A. def add_test():\n assert 1 + 1 == 2
B. def test_add():\n assert 1 + 1 == 2
C. def test_add():\n assert 1 + 1 == 3
D. def testAdd():\n assert 1 + 1 == 2

Solution

  1. Step 1: Check function name format

    PyTest requires test functions to start with test_, so test_add is correct.
  2. Step 2: Verify assertion correctness

    The assertion 1 + 1 == 2 is true, so the test will pass.
  3. Final Answer:

    def test_add():\n assert 1 + 1 == 2 -> Option B
  4. Quick Check:

    Correct test name and true assert = def test_add():\n assert 1 + 1 == 2 [OK]
Hint: Use def test_...() with assert for valid PyTest tests [OK]
Common Mistakes:
  • Naming function without test_ prefix
  • Using incorrect assertion values
  • Using camelCase instead of snake_case for test names
3. What will be the result when running this PyTest test?
def test_example():
    x = 5
    y = 2
    assert x - y == 3
medium
A. Test passes successfully
B. SyntaxError occurs
C. Test fails with AssertionError
D. Test is skipped automatically

Solution

  1. Step 1: Evaluate the assertion expression

    Calculate x - y which is 5 - 2 = 3.
  2. Step 2: Compare with asserted value

    The assertion checks if 3 == 3, which is true, so no error is raised.
  3. Final Answer:

    Test passes successfully -> Option A
  4. Quick Check:

    5 - 2 equals 3 means assert passes [OK]
Hint: Calculate assert expression; true means test passes [OK]
Common Mistakes:
  • Assuming test fails without checking assertion
  • Confusing syntax errors with assertion failures
  • Thinking tests skip without skip decorators
4. Identify the error in this PyTest test function:
def test_sum():
    total = 2 + 2
    assert total = 4
medium
A. Using single equals (=) instead of double equals (==) in assert
B. Function name does not start with test_
C. Missing return statement in test function
D. Indentation error in function body

Solution

  1. Step 1: Check the assert statement syntax

    The assert uses = which is assignment, not comparison. It should be ==.
  2. Step 2: Confirm function name and indentation

    The function name starts with test_ and indentation is correct, so no error there.
  3. Final Answer:

    Using single equals (=) instead of double equals (==) in assert -> Option A
  4. Quick Check:

    Assert needs ==, not = [OK]
Hint: Use == in assert, not = for comparison [OK]
Common Mistakes:
  • Using = instead of == in assert
  • Thinking return is needed in test functions
  • Confusing indentation errors with syntax errors
5. You want to test a function multiply(a, b) that returns the product of two numbers. Which PyTest test function correctly tests that multiply(3, 4) returns 12?
hard
A. def test_multiply():\n assert multiply(3, 4) == 7
B. def test_multiply():\n assert multiply(3, 4) = 12
C. def multiply_test():\n assert multiply(3, 4) == 12
D. def test_multiply():\n assert multiply(3, 4) == 12

Solution

  1. Step 1: Verify test function name

    The function name must start with test_, so test_multiply is correct.
  2. Step 2: Check assertion correctness

    The assertion must compare with == and the expected result is 12, so assert multiply(3, 4) == 12 is correct.
  3. Final Answer:

    def test_multiply():\n assert multiply(3, 4) == 12 -> Option D
  4. Quick Check:

    Correct name and assert with == 12 = def test_multiply():\n assert multiply(3, 4) == 12 [OK]
Hint: Test functions start with test_ and assert expected == actual [OK]
Common Mistakes:
  • Wrong expected value in assert
  • Wrong function name prefix
  • Using = instead of == in assert
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