Contenido del Curso
Python Advanced Concepts
Python Advanced Concepts
Test Parametrization
Parameterized testing is crucial for enhancing test coverage without writing numerous test functions for scenarios that only differ by their inputs and expected outputs. This approach not only saves time but also increases the clarity and maintainability of test suites by:
- Reducing code duplication and the potential for errors in test code;
- Enabling easy addition of new test cases by simply adding parameters;
- Facilitating comprehensive testing across a wide range of inputs.
Let's consider a simple function that calculates the average of two numbers. There can be a logical error if to forget to put braces. We'll use @pytest.mark.parametrize
to test this function with several pairs of numbers.
This example demonstrates how to run test_calculate_average with three different sets of numbers, checking if the function correctly computes their average.
Syntax with id
The id
parameter is used to assign an identifier to each set of inputs, which helps to identify tests more easily in the test output:
Using pytest.param
allows for more granular control over each test case, including setting individual IDs directly.
Syntax with ids
You can also provide a unique ID for each test case using ids
, which makes test reports more readable:
In this code, each set of parameters has an associated ID that describes the test case, which will appear in the test output.
Here's what the output might look like:
¡Gracias por tus comentarios!