Sobes.tech
Middle

Kas ir dekoratori Python un kur tie tiek izmanto testos?

sobes.tech AI

Atbilde no AI

Python dekoratori ir ir funkcijas, kas pieņem citu funkciju un atgriež jaunu funkciju ar paplašinātu uzvedību, nemainot avota kodu.

Testos dekoratori bieži tiek izmantoti:

  • Koda atkārtotai lietošanai (piemēram, vides iestatīšanai pirms testa).
  • Testu izpildes laika reģistrēšanai vai mērīšanai.
  • Testu izlaist, ja ir noteikti nosacījumi.

Piemērs, kā izmantot dekoratoru, lai izlaistu testu, ja nosacījums nav izpildīts:

import unittest

def skip_if_no_db(func):
    def wrapper(*args, **kwargs):
        if not check_db_connection():
            raise unittest.SkipTest("Nav savienojuma ar datu bāzi")
        return func(*args, **kwargs)
    return wrapper

class MyTests(unittest.TestCase):
    @skip_if_no_db
    def test_query(self):
        # tests, kas prasa datu bāzi
        pass

Tādējādi dekoratori palīdz padarīt testus elastīgākus un lasāmākus.