Skocz do zawartości
Pecetowicz Forum komputerowe

Testy kodu PHP w phpunit. Failed for "ListAllBuckets"


Rekomendowane odpowiedzi

Jest sobie kod:

$lm = new ListBuckets();
$lm->ListAllBuckets();
$mocked = $this->createMock(ListBuckets::class);
$mocked->expects($this->once())->method('ListAllBuckets')->willReturn("Sample return");

jest to kod tanijny testu pewnej klasy ( ListBuckets ) napisany z użyciem phpunit.

Po odpaleniu testu wywala:

Expectation failed for method name is "ListAllBuckets" when invoked 1 time(s).
Method was expected to be called 1 times, actually called 0 times.

Google g*wno pomaga ( wszystkie3 rozwiązania jakie tam są oznaczone jako sprawdzone g*wno robią ). Nawet na GitHubie phpUnita jest założone issue z tym problemem z roku 2017 i co? I nic!!

Jak ten problem naprawić

Odnośnik do odpowiedzi
Udostępnij na innych stronach
  • Ekspert
Napisano (edytowane)

Ogólnie, to pomieszałeś Stuba z Mockiem.

Stub jest tutaj niepotrzebny wg mnie, bo to test bez sensu.

<?php

$stub = $this->createMock(ListBuckets::class);
$stub->method('ListAllBuckets')
  ->willReturn('Sample return');

$this->assertSame('Sample return', $stub->ListAllBuckets());

A co do Mocka, to sam sobie poczytaj czy go potrzebujesz...
https://phpunit.de/manual/6.5/en/test-doubles.html#test-doubles.mock-objects.examples.SubjectTest.php

Edytowane przez -n3veR
Odnośnik do odpowiedzi
Udostępnij na innych stronach

Problem wciąż nierozwiązany? Dodaj swoją odpowiedź

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto. Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...