Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem ze zrozumioeniem fragmentu książki:"PHP5 Profesfonalne tworzenie oprogramowania"
Forum PHP.pl > Forum > PHP
S_Olewniczak
Podstawy PHP znam, ale natknąłem się w książce wymienionej w temacie na fragment kodu źródłowego, którego nijak mogę zrozumieć:

Testy_Projektu_Pakiet_WszystkieTesty.php:

  1.  
  2. <?php
  3. if (!defined('PHPUnit2_MAIN_METHOD')) {
  4. 'PHPUnit2_MAIN_METHOD',
  5. 'Testy_Projektu_Pakiet_WszystkieTesty::main'
  6. );
  7. }
  8.  
  9. require_once 'PHPUnit2/Framework/TestSuite.php';
  10. require_once 'PHPUnit2/TextUI/TestRunner.php';
  11.  
  12. require_once 'Projekt/Tests/Paket/Klasa.php';
  13.  
  14. class Testy_Projektu_Pakiet_WszystkieTesty {
  15. public static function main() {
  16. PHPUnit2_TextUI_TestRunner::run(self::suite());
  17. }
  18.  
  19. public static function suite() {
  20. $suite = new PHPUnit2_Framework_TestSuite(
  21. 'Projekt / Pakiet'
  22. );
  23.  
  24. $suite->addTestSuite('Testy_Projektu_Pakiet_WszystkieTesty');
  25.  
  26. return $suite;
  27. }
  28. }
  29.  
  30. if (PHPUnit2_MAIN_METHOD ==
  31. 'Testy_Projektu_Pakiet_WszystkieTesty::main') {
  32. Testy_Projektu_Pakiet_WszystkieTesty::main();
  33. }
  34. ?>
  35.  
  36.  


Testy_Projektu_WszystkieTesty.php:

  1.  
  2. <?php
  3. if (!defined('PHPUnit2_MAIN_METHOD')) {
  4. 'PHPUnit2_MAIN_METHOD',
  5. 'Testy_Projektu_WszystkieTesty::main'
  6. );
  7. }
  8.  
  9. require_once 'PHPUnit2/Framework/TestSuite.php';
  10. require_once 'PHPUnit2/TextUI/TestRunner.php';
  11.  
  12. require_once 'Projekt/Testy/Pakiet/WszystkieTesty.php';
  13.  
  14. class Testy_Projektu_WszystkieTesty {
  15. public static function main() {
  16. PHPUnit2_TextUI_TestRunner::run(self::suite());
  17. }
  18.  
  19. public static function suite() {
  20. $suite = new PHPUnit2_Framework_TestSuite('Projekt');
  21.  
  22. $suite->addTest(Testy_Projektu_WszystkieTesty::suite());
  23.  
  24. return $suite;
  25. }
  26. }
  27.  
  28. if (PHPUnit2_MAIN_METHOD ==
  29. 'Testy_Projektu_WszystkieTesty::main') {
  30. Testy_Projektu_WszystkieTesty::main();
  31. }
  32. ?>
  33.  
  34.  


Testy_Projektu_Pakiet_Klasa.php:

  1.  
  2. <?php
  3. require_once 'PHPUnit2/Framework/TestCase.php';
  4.  
  5. require_once 'Projekt/Pakiet/Klasa.php';
  6.  
  7. class Testy_Projektu_Pakiet_Klasa
  8. extends PHPUnit2_Framework_TestCase {
  9. public function testMethode() {
  10. $t = new Projekt_Pakiet_Klasa;
  11. $this->assertTrue($t->metoda('test'));
  12. }
  13.  
  14. // ...
  15. }
  16. ?>
  17.  
  18.  


Czy ktoś bardziej doświadczony może mi go wytłumaczyć?

nospor
no ale czego konkretnie z tego nie rozumiesz?
S_Olewniczak
O co chodzi ze stałą PHPUnit2_MAIN_METHOD i statyczną metodą main()?
nospor
A o co ma chodzic? Ktos zdefiniował taką stałą i nadał jej wartość jaką nadał. Przepraszam, ale co tu rozumiec?
A juz tak konkretniej: w stałej PHPUnit2_MAIN_METHOD określono, ze główną metodą jest metoda main() - wnioskuje to po całości kodu
Zyx
Chodzi o to, by móc uruchomić zarówno cały zestaw testowy, jak i też jego fragment. Zależnie od tego, co chcesz zrobić, musisz odpalić inną metodę w hierarchii testów i to podaje właśnie wspomniana stała. A statyczny main jest odpalany celem uruchomienia danego fragmentu testów.
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-2025 Invision Power Services, Inc.