Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Phpunit test metody z parametrem
Matrix12
post
Post #1





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 22.03.2015

Ostrzeżenie: (0%)
-----


Witam,

Jak przetestować metodę która otrzymuje parametr? Jak napisać mocka lub stuba do takiej konfiguracji
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Forti
post
Post #2





Grupa: Zarejestrowani
Postów: 655
Pomógł: 73
Dołączył: 2.05.2014

Ostrzeżenie: (0%)
-----


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.


--------------------
Overwatch24 - najbardziej zaawansowany Polski portal Overwatch od fanów dla fanów.

Fachowo.co

Behance.net/fachowo
Go to the top of the page
+Quote Post
Matrix12
post
Post #3





Grupa: Zarejestrowani
Postów: 144
Pomógł: 0
Dołączył: 22.03.2015

Ostrzeżenie: (0%)
-----


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 ?

Ten post edytował Matrix12 24.08.2015, 20:07:54
Go to the top of the page
+Quote Post
Malukaz
post
Post #4





Grupa: Zarejestrowani
Postów: 77
Pomógł: 4
Dołączył: 16.04.2009

Ostrzeżenie: (10%)
X----


Mam klasę Database

- pokaz ją tu ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 04:37