„Codeception Unit Tesztelés segédlet” változatai közötti eltérés

Innen: Szitár-Net Wiki
Ugrás a navigációhoz Ugrás a kereséshez
1. sor: 1. sor:
== Használata ==
 
 
A Yii2 keretrendszer automatikusan feltelepíti a Codeception nevű teszt keretrendszert, mely PhpUnit-ot használ.
 
A Yii2 keretrendszer automatikusan feltelepíti a Codeception nevű teszt keretrendszert, mely PhpUnit-ot használ.
 
A terminálba a beírt <code>'''vendor\bin\codecept'''</code> parancs segítségével megtekinthetjük a kiválasztható opciókat.
 
A terminálba a beírt <code>'''vendor\bin\codecept'''</code> parancs segítségével megtekinthetjük a kiválasztható opciókat.
  
=== Unit teszt osztály létrehozása ===
+
== Unit teszt osztály létrehozása ==
 
Terminálba írható parancs segítségével: <code>'''vendor\bin\codecept g:test unit HolidaysTest'''</code><br>
 
Terminálba írható parancs segítségével: <code>'''vendor\bin\codecept g:test unit HolidaysTest'''</code><br>
 
vagy pedig:<br>
 
vagy pedig:<br>
14. sor: 13. sor:
  
 
== Gyakori hibák ==
 
== Gyakori hibák ==
=== Configuration.php: _bootstrap.php cant't be loaded ===
+
''''' Configuration.php: _bootstrap.php cant't be loaded '''''<br>
 
[[Fájl:Unit teszt1.png|400px|bélyegkép|jobbra|bootstrap can't be loaded]]
 
[[Fájl:Unit teszt1.png|400px|bélyegkép|jobbra|bootstrap can't be loaded]]
 
Ha a <code>'''vendor\bin\codecept'''</code> bármilyen parancsa beírása esetén az alábbi képen is látható hiba üzenet jelenik meg, akkor valószínűleg a tests mappa törölve lett, a codeception.yml viszont nem<br>
 
Ha a <code>'''vendor\bin\codecept'''</code> bármilyen parancsa beírása esetén az alábbi képen is látható hiba üzenet jelenik meg, akkor valószínűleg a tests mappa törölve lett, a codeception.yml viszont nem<br>
21. sor: 20. sor:
 
#  A terminálban a <code>'''php composer.phar require codeception/module-phpbrowser --dev'''</code> parancs beírása, a module-phpbrowser telepítése / frissítése
 
#  A terminálban a <code>'''php composer.phar require codeception/module-phpbrowser --dev'''</code> parancs beírása, a module-phpbrowser telepítése / frissítése
 
#  A terminálban a <code>'''vendor\bin\codecept bootstrap'''</code> parancs futtatása
 
#  A terminálban a <code>'''vendor\bin\codecept bootstrap'''</code> parancs futtatása
Ezekután létrehozhatjuk a tesztjeinket.
+
Ezekután létrehozhatjuk a tesztjeinket.<br><br>
  
=== Class not found ===
+
''''' Class not found '''''<br>
 
[[Fájl:Unit teszt6.png|400px|bélyegkép|jobbra|Class not found]]
 
[[Fájl:Unit teszt6.png|400px|bélyegkép|jobbra|Class not found]]
 
A <code>'''vendor\bin\codecept run'''</code> futtatása után a következő hiba üzenet fogad:<br>
 
A <code>'''vendor\bin\codecept run'''</code> futtatása után a következő hiba üzenet fogad:<br>
31. sor: 30. sor:
 
<code>'''require(__DIR__ . '\..\modules\apps\models\Apps.php');'''</code><br><br>
 
<code>'''require(__DIR__ . '\..\modules\apps\models\Apps.php');'''</code><br><br>
  
=== Class 'Yii' not found ===
+
''''' Class 'Yii' not found '''''<br>
 
[[Fájl:Unit teszt7.png|400px|bélyegkép|jobbra|Class 'Yii' not found]]
 
[[Fájl:Unit teszt7.png|400px|bélyegkép|jobbra|Class 'Yii' not found]]
 
Ha az alábbi hibaüzenet jelenik meg akkor, a codeception.yml fájl konfigurálása szükséges.<br>
 
Ha az alábbi hibaüzenet jelenik meg akkor, a codeception.yml fájl konfigurálása szükséges.<br>
43. sor: 42. sor:
 
</pre>
 
</pre>
  
=== Call to a member function getDb() on null ===
+
''''' Call to a member function getDb() on null '''''<br>
 
[[Fájl:Unit teszt8.png|400px|bélyegkép|jobbra|[Error] Call to a member function getDb() on null]]
 
[[Fájl:Unit teszt8.png|400px|bélyegkép|jobbra|[Error] Call to a member function getDb() on null]]
 
A hiba esetén, a unit.suite.yml fájl konfigurálása szükséges.<br>
 
A hiba esetén, a unit.suite.yml fájl konfigurálása szükséges.<br>
55. sor: 54. sor:
 
<br>
 
<br>
  
=== Unknown database 'yii2_basic_tests' ===
+
''''' Unknown database 'yii2_basic_tests' '''''<br>
 
[[Fájl:Unit teszt9.png|400px|bélyegkép|jobbra|[1049] Unknown database 'yii2_basic_tests']]
 
[[Fájl:Unit teszt9.png|400px|bélyegkép|jobbra|[1049] Unknown database 'yii2_basic_tests']]
 
'''Megoldás:''' Ebben az esetben a config mappában a test_db.php-ban a dbname beállítása szükséges.<br>
 
'''Megoldás:''' Ebben az esetben a config mappában a test_db.php-ban a dbname beállítása szükséges.<br>
 
'''Fontos: ne a fejlesztés adatbázisát használjuk, hozzunk létre külön tesztadatbázist'''
 
'''Fontos: ne a fejlesztés adatbázisát használjuk, hozzunk létre külön tesztadatbázist'''

A lap 2021. augusztus 30., 15:11-kori változata

A Yii2 keretrendszer automatikusan feltelepíti a Codeception nevű teszt keretrendszert, mely PhpUnit-ot használ. A terminálba a beírt vendor\bin\codecept parancs segítségével megtekinthetjük a kiválasztható opciókat.

Unit teszt osztály létrehozása

Terminálba írható parancs segítségével: vendor\bin\codecept g:test unit HolidaysTest
vagy pedig:

1. Grafikus felületen tests mappában unit mappára jobb klikk > new > PHP Test > Codeception Unit Test

Unit teszt létrehozása grafikus felületen

2. Ezekután bejön a Create New PHP Test ablaka: Itt megadhatjuk, hogy melyik megírt osztályt szeretnénk tesztelni, illetve az adott osztály tesztelni kívánt metódusait is legenerálhatjuk.

A tesztelni kívánt osztály metódusainak generálása

Gyakori hibák

Configuration.php: _bootstrap.php cant't be loaded

bootstrap can't be loaded

Ha a vendor\bin\codecept bármilyen parancsa beírása esetén az alábbi képen is látható hiba üzenet jelenik meg, akkor valószínűleg a tests mappa törölve lett, a codeception.yml viszont nem
Megoldás:

  1. A codeception.yml fájl törlése
  2. A terminálban a php composer.phar require codeception/module-phpbrowser --dev parancs beírása, a module-phpbrowser telepítése / frissítése
  3. A terminálban a vendor\bin\codecept bootstrap parancs futtatása

Ezekután létrehozhatjuk a tesztjeinket.

Class not found

Class not found

A vendor\bin\codecept run futtatása után a következő hiba üzenet fogad:
Megoldás: A hiányzó osztály és az Apps.php fájl require paranccsal történő implementálása a _bootstrap.php fájlban, az alább is látható módon:
require(__DIR__ . '\..\modules\partners\models\Partners.php');
require(__DIR__ . '\..\modules\apps\models\Apps.php');

Class 'Yii' not found

Class 'Yii' not found

Ha az alábbi hibaüzenet jelenik meg akkor, a codeception.yml fájl konfigurálása szükséges.
Megoldás: A codeception.yml fájlhoz az alábbi kód hozzáadása:

bootstrap: _bootstrap.php
modules:
    config:
        Yii2:
            configFile: 'config/test.php'

Call to a member function getDb() on null

[Error] Call to a member function getDb() on null

A hiba esetén, a unit.suite.yml fájl konfigurálása szükséges.
Megoldás: A unit.suite.yml fájlhoz az alábbi kód hozzáadása:

modules:
    enabled:
        - Yii2:
            part: [ orm, email, fixtures ]


Unknown database 'yii2_basic_tests'

[1049] Unknown database 'yii2_basic_tests'

Megoldás: Ebben az esetben a config mappában a test_db.php-ban a dbname beállítása szükséges.
Fontos: ne a fejlesztés adatbázisát használjuk, hozzunk létre külön tesztadatbázist