Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Testy jednostkowe Laravel - czy robię to dobrze?
Forum PHP.pl > Forum > PHP > Object-oriented programming
Rysh
Ze znajomymi zaczęliśmy pisać aplikację w Laravelu, wszystko postawione na git, podzieliliśmy się zadaniami.
Mi przypadło doinstalować composerem role laravel ( https://github.com/Zizaco/entrust ) - przed wrzuceniem na gita muszę to przetestować, tylko w jaki sposób.
Poczytałem o testach jednostkowych - tylko nie wiem czy za ich pomocą powinienem to przetestować? Liczę na pomoc bardziej doświadczonych w takich sprawach.
I jeśli testy jednostkowe to dobry pomysł, czy dobrze je stosuję?
  1. <?php
  2.  
  3. use Illuminate\Foundation\Testing\WithoutMiddleware;
  4. use Illuminate\Foundation\Testing\DatabaseMigrations;
  5. use Illuminate\Foundation\Testing\DatabaseTransactions;
  6.  
  7. class RoleTest extends TestCase
  8. {
  9. /**
  10.   * TODO: Unit Test Role
  11.   *
  12.   * 1. tworzenie użytkownika (true)
  13.   * 2. tworzenie roli (true)
  14.   * 3. przypisanie roli dla użytkownika (true)
  15.   * 4. sprawdzenie uprawnień użytkownika (false)
  16.   * 5. dodanie uprawnień do roli (true)
  17.   * 6. sprawdzenie uprawnień użytkownika (true)
  18.   * 7. zabranie roli dla użytkownika (true)
  19.   * 8. sprawdzenie uprawnień użytkownika (false)
  20.   * 9. usunięcie uprawnienia z roli (true)
  21.   * 10. usunięcie roli (true)
  22.   * 11. usunięcie użytkownika (true)
  23.   *
  24.   * na koniec przywrócić indeksy do możliwie najniższych wartości.
  25.   *
  26.   */
  27.  
  28. /**
  29.   * Create Role
  30.   *
  31.   * @return void
  32.   */
  33. public function testCreateRole() {
  34. $role = new Zizaco\Entrust\EntrustRole();
  35. $role->name = 'TestRole';
  36. $this->assertTrue((bool)$role->save());
  37. }
  38.  
  39. /**
  40.   * Create Premission
  41.   *
  42.   * @return void
  43.   */
  44. public function testCreatePremission() {
  45. $premission = new Zizaco\Entrust\EntrustPermission();
  46. $premission->name = 'TestPremission';
  47. $this->assertTrue((bool)$premission->save());
  48. }
  49.  
  50. // TO DO: Other Unit Test
  51.  
  52. /**
  53.   * Delete Premission
  54.   *
  55.   * @return void
  56.   */
  57. public function testDeletePremission() {
  58. $premission = Zizaco\Entrust\EntrustPermission::where('name', '=', 'TestPremission');
  59. $this->assertTrue((bool)$premission->delete());
  60. }
  61.  
  62. /**
  63.   * Delete Role
  64.   *
  65.   * @return void
  66.   */
  67. public function testDeleteRole() {
  68. $role = Zizaco\Entrust\EntrustRole::where('name', '=', 'TestRole');
  69. $this->assertTrue((bool)$role->delete());
  70. }
  71.  
  72. }
matiit
Ale ty testujesz coś co już ma własne testy.

https://github.com/Zizaco/entrust/tree/master/tests
SmokAnalog
Testów jednostkowych nie wykonuje się po to, żeby sprawdzać działanie zewnętrznych bibliotek, a już zwłaszcza tych, które mają własne testy. Co chcesz osiągnąć takim testem? Kiedy niby on ma się nie udać?
daro0
Są tylko po to, żeby nie trzeba było się przeklikiwać po każdej zmianie żeby sprawdzić czy wszystko prawidłowo działa. Automatyczny test wykona wszystko szybko a Wam takie ręczne sprawdzanie zajmie ileś czasu. Tym bardziej że robicie w zespole.
lukaskolista
Testami jednostkowymi testujesz swój kod, a działanie swojego kodu w połączeniu z zewnętrzną biblioteką możesz przetestować integracyjnie (testy integracyjne).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.