Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

RECIRCLE / interface-openstack

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 2
  • Merge Requests 4
  • Pipelines
  • Wiki
  • Snippets
  • Members
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Tesztelés

Tesztelés

Last edited by Chif Gergő Aug 26, 2019
Page history

Az interfész tesztelése

Unit tesztek

A tesztelés során a csak a saját kódrészeket kell vizsgálni. Ezért a külső kapcsolatokat mock-olni kell. A mockoláshoz a Python beépített mock libraryjét használjuk. Érdemes az egész kapcsolatot elfedni egy patcheléssel. Bővebb információ: Patch in Python. Ezután a kapott Mock objektumnak felülírni a szükséges függvényeit.

Péda az OpenStackes implementációból:

   @patch('openstack.connect')
    def setUp(self, mock_connect):
        self.compute = MagicMock()
        self.compute.get_server = MagicMock(return_value=servers[0])
        mock_connect().compute = self.compute
        self.manager = OSVirtualMachineManager(auth=fake_auth)

A felhőmenedzser által visszaadott objektumok helyett is mockolt példányokat használunk. Ezeket lehetőleg a tesztfájl elején sorold fel, vagy ha sok van akkor külön fájlban. Egyszerre egy funkciót tesztelj, pl.: meghívódott-e és jó paraméterekkel a függvény, hibát kellet dobjon a kód, jó objektumot adott vissza, ... . Igyekezz kimerítő teszteket írni különféle paraméterezéssel, a kritikusabb részekre fókuszálva.

Tapasztalt hibák:

  • A patch által visszaadott objektumon elfelejtett "()", ha az meg van hívva a tesztelni kívánt kódban.
  • Nem futnak le a tesztek: A gyökérkönyvtárból kell meghívni a teszteket, mert abszolút importokat használunk, mivel egy külön package-ként szeretnénk használni.
  Clone repository
  • Image manager
  • Snapshot manager
  • Tesztelés
  • Home
  • Storage manager
  • Vm page
More Pages
×

New Wiki Page

Tip: You can specify the full path for the new file. We will automatically create any missing directories.