Open In App

Pytest Fixtures

Pytest fixtures are a powerful feature that allows you to set up and tear down resources needed for your tests. They help in creating reusable and maintainable test code by providing a way to define and manage the setup and teardown logic. A Fixture is a piece of code that runs and returns output before the execution of each test. In this article, we will study the fixtures in Pytest.

Pre-requisite

Fixtures in Pytest:

Syntax:

@pytest.fixture
def function_name():
   input = value_to_be_passed
   return input

Here,



Example 1:

In this example, we have declared one fixture, input_value for declaring the input and passing the input to each test. Here, we have declared two tests, test_check_difference, and test_check_square_root, that use the value declared by the fixture.




# Importing the math and pytest libraries
import math
import pytest
  
# Creating the common function for input
@pytest.fixture
def input_value():
   input = 8
   return input
  
# Creating first test case
def test_check_difference(input_value):
   assert 99-93==input_value
  
# Creating second test case
def test_check_square_root(input_value):
   assert input_value==math.sqrt(64)

Output:

Now, run the test using the following command in terminal:



pytest test.py

Example2:

In this example, we have declared one fixture, string_match that removes leading and trailing spaces from input and passes the input to each test, i.e., test_remove_G, test_remove_e, and test_remove_o.




# Import pytest library
import pytest
  
# Creating the common function for input
@pytest.fixture
def string_match():
   string = "   Geeks For Geeks   "
   return string.strip()
  
# Creating first test case
def test_remove_G(string_match):
    assert string_match.replace('G','')=="eeks For eeks"
  
# Creating second test case
def test_remove_e(string_match):
    assert string_match.replace('e','')=="Gaks For Gaks"
  
# Creating third test case
def test_remove_o(string_match):
    assert string_match.replace('o','')=="Geeks Fr Geeks"

Output:

Now, run the test using the following command in terminal:

pytest test.py

After running this command you will get this output

Conclusion

The fixtures help the user to use the certain part of code just by declaring and reading it once, thus it becomes a crucial part of Pytest. I hope the above article might have helped you in understanding the fixtures in Pytest.


Article Tags :