![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 0 Dołączył: 3.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
Na co powinienem zwrócić uwagę, pisząc testy w PHPUnit? Co powinienem testować, a czego nie?
Napisałem kiedyś taki test kontrolera w Symfony. Jak przetestować klikanie w linki bez Symfony? Przeglądam pisanie testów w PHPUnit i nie widzę przykładów, jak to zrobić. Podpowiedzcie mi, co powinienem przetestować w mojej aplikacji... (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 114 Pomógł: 0 Dołączył: 3.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
Cytat $this->assertSelectorTextContains('#twojDIV', 'Witaj Robert'); Metoda jest niezdefiniowana... Nie mogę jej użyć. Kod preg_match( '/<p class="ok">\r\n (Welcome, Robert!)<br>/', (string) $response, $matches ); $this->assertEquals($matches[1], 'Welcome, Robert!'); Takie coś działa, ale nie wygląda to zbyt profesjonalnie. :] PS Zdaje się, że w PHPUnit 9.6 część dawnych metod została usunięta, ale można użyć takie coś: Kod <?php
declare(strict_types=1); namespace App\Tests\Controller; use Symfony\Component\BrowserKit\HttpBrowser; use Symfony\Component\HttpClient\HttpClient; use Symfony\Component\Panther\PantherTestCase; class MainPageControllerTest extends PantherTestCase { public function testMainPageTitleAndForm(): void { $browser = new HttpBrowser(HttpClient::create()); $browser->request('GET', '/'); $response = $browser->getResponse(); $this->assertStringContainsString( '<title>PHP Framework from EEQSOFT</title>', (string) $response ); $browser->clickLink('Polish'); $response = $browser->getResponse(); $this->assertStringContainsString( '<title>PHP Framework od EEQSOFT</title>', (string) $response ); $browser->clickLink('Angielski'); $browser->submitForm('Confirm', ['name' => 'Robert']); $response = $browser->getResponse(); $this->assertStringContainsString( 'Welcome, Robert!', (string) $response ); } } Ten post edytował eerie 22.03.2025, 11:53:01 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 7.10.2025 - 06:31 |