Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Phpunit test metody z parametrem
Forum PHP.pl > Forum > PHP
Matrix12
Witam,

Jak przetestować metodę która otrzymuje parametr? Jak napisać mocka lub stuba do takiej konfiguracji
Forti
Witaj przyjacielu.

Okresl prosze z czym konkretnie masz problem. Podaj jakiś przykład.

Obecnie twoje pytanie jest w stylu "jak programować?" - czyli zbyt ogólne.
Matrix12
Mam metodę ktora przyjmuje parametr i wyciaga dane z bazy. Chce użyć staba i przetestować metodę. Problem w tym ze nie wiem jak przekazac parametr w stubie ktory testuje dana metodę




Mam klasę Database w której mam dwie metody jedną prywatną connectWithDatabase() która łączy się z baza poprzez PDO a druga to query która przyjmuje tablice jako parametr.


W klasie Application wtrzykuje Database, i mam metode allproducts
  1.  
  2. function allProducts()
  3. {
  4. $result= $this->database->query(array('sql'=>'SELECT * FROM products'));
  5.  
  6. return $result;
  7. }




Test wygląda tak

  1. function test_application_query()
  2. {
  3.  
  4. $database = Mockery::mock('Database');
  5. $database->shouldReceive('query')->once()->with(array('sql'=>'SELECT * FROM products'))
  6. ->andReturn($database);
  7. $application = new \Acme\Application($database);
  8. $this->assertEquals($this->allDomains(), $application->allProducts());
  9. }
  10.  
  11.  
  12. function allProducts()
  13. {
  14. $database = new Database;
  15. $result = $database->querySelect(array('sql'=>'SELECT * FROM products'));
  16. return $result;
  17. }




konsola pluje to :




1) QUeryBuilderTest::test_application_query
Mockery_0__Database Object (...) does not match expected type "array".

/var/www/domeny3/tests/QueryBuilderTest.php:53

FAILURES!


Jakieś sugestie jak to przetestować? A może nie używać stub, tylko normalnie poprzez wywołanie ?
Malukaz
Mam klasę Database

- pokaz ją tu ?
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.