Junior — Middle
In what scenarios is a decorator set up before each test run and after its completion?
sobes.tech AI
Answer from AI
Decorators that are applied before and after each test are typically used for setting up and cleaning up the test environment.
Use cases:
- Initializing resources (e.g., connecting to a database, creating temporary files).
- Configuring the state required for the test (e.g., setting configurations).
- Cleaning up resources after the test (closing connections, deleting temporary data).
- Logging or collecting metrics for each test.
Example of usage in Python with unittest:
import unittest
def setup_decorator(func):
def wrapper(self, *args, **kwargs):
# Actions before the test
self.resource = open('temp.txt', 'w')
try:
return func(self, *args, **kwargs)
finally:
# Actions after the test
self.resource.close()
return wrapper
class MyTest(unittest.TestCase):
@setup_decorator
def test_example(self):
self.resource.write('test')
self.assertTrue(True)
Thus, the decorator helps ensure that setup and cleanup are performed for each test, providing isolation and repeatability.