Skocz do zawartości
Szukaj na Pecetowiczu
  • Utwórz konto

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 komentarza
Udostępnij na innych stronach

(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 komentarza
Udostępnij na innych stronach

Kontynuuj dyskusję

Dołącz do Pecetowicza, aby kontynuować dyskusję w tym wątku.

  • Dodaj nową pozycję...
  • Dodaj nową pozycję...