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
function allProducts()
{
$result= $this->database->query(array('sql'=>'SELECT * FROM products'));
return $result;
}
Test wygląda tak
function test_application_query()
{
$database = Mockery::mock('Database');
$database->shouldReceive('query')->once()->with(array('sql'=>'SELECT * FROM products')) ->andReturn($database);
$application = new \Acme\Application($database);
$this->assertEquals($this->allDomains(), $application->allProducts());
}
function allProducts()
{
$database = new Database;
$result = $database->querySelect(array('sql'=>'SELECT * FROM products')); return $result;
}
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 ?