Nette – Mockery – unit testy
- davidzaba
- Člen | 13
Ahojte.
Jiz delsi dobu provadim UNIT testy skrze MOCKERY. Nyni bych rad implementoval MOCKERY do UNIT testu projektu bezicich na Nette. Nicmene hned 1. pokus namockovat objekt nevychazi, konkretne pri zadani:
$requestMock = M::mock('Nette\Http\Request');
$requestMock->shouldReceive("getPost")->andReturn(array('test_var'=>'test_val'));
$requestMock->shouldReceive("getQuery")->andReturn(array('test_var'=>'test_val'));
mi volani:
$requestMock->getPost();
$requestMock->getQuery();
vraci (v obout pripadech) hodnotu NULL
Predem dekuji za pomoc.
Editoval davidzaba (22. 6. 2015 11:13)
- David Matějka
- Moderator | 6445
ukaz celej soubor, asi tam mas neco spatne. Zkusil jsem kod, co posilas, a jede to OK.
btw, precti si, jak formatovat kod, pro tentokrat jsem ti to opravil :)
- davidzaba
- Člen | 13
David Matějka napsal(a):
ukaz celej soubor, asi tam mas neco spatne. Zkusil jsem kod, co posilas, a jede to OK.
btw, precti si, jak formatovat kod, pro tentokrat jsem ti to opravil :)
Dekuji za opravu formatovani. Zde je osekany kod, ktery presto navraci NULL:
require './vendor/autoload.php';
use Mockery as M;
$requestMock = M::mock('Nette\Http\Request');
$requestMock->shouldReceive('getQuery')->andReturn('1');
$requestMock->shouldReceive('getPost')->andReturn('2');
$requestMock->shouldReceive('getPost1')->andReturn('3');
$requestMock->shouldReceive('getPost2')->andReturn('4');
echo($requestMock->getQuery()); // returns NULL :-(
echo($requestMock->getPost()); // returns NULL :-(
echo($requestMock->getPost1()); // returns 3:-)
echo($requestMock->getPost2()); // returns 4:-)
M::close();
Editoval davidzaba (22. 6. 2015 13:41)
- davidzaba
- Člen | 13
enumag napsal(a):
Proč to vrací null bohužel nevím, ale vidím nesouvisející chybu – na konci ti chybí
M::close();
.
Zde je osekany kod, ktery presto navraci NULL:
require './vendor/autoload.php';
use Mockery as M;
$requestMock = M::mock('Nette\Http\Request');
$requestMock->shouldReceive('getQuery')->andReturn('1');
$requestMock->shouldReceive('getPost')->andReturn('2');
$requestMock->shouldReceive('getPost1')->andReturn('3');
$requestMock->shouldReceive('getPost2')->andReturn('4');
echo($requestMock->getQuery()); // returns NULL :-(
echo($requestMock->getPost()); // returns NULL :-(
echo($requestMock->getPost1()); // returns 3:-)
echo($requestMock->getPost2()); // returns 4:-)
M::close();
Editoval davidzaba (22. 6. 2015 13:41)