PHPUnit a predanie POST parametrov

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
newPOPE
Člen | 648
+
0
-

Ahoj,

mam otazku ohladne testovania Presenteru a to nedari sa mi mu predat POST paramatre z testu

<?php
$request = new PresenterRequest(":Api:Json", "POST", array(
	'action' => 'registerUser',
), array(
	'param' => 'test param',
));

$presenter = new Api_JsonPresenter();
$response = $this->presenter->run($request);
?>

presenter

<?php
public function actionRegisterUser($param) {
	dump($post);
	dump($this->getParam('param'));
	...

?>

alebo sa to neda bez napr. vytvorenia Formulara nasimulovat ?

skusal som uz asi vsetko co ma napadlo…

Dik

arron
Člen | 464
+
0
-

Je to docela prasarna, ale tohle mi docela dobre poslouzilo:

$_SERVER['REQUEST_METHOD'] = 'POST';
$_POST['whatEver'] = $someImportantValue;

Jeste me ted napadlo, ze by se dalo kouknout do testu Nette, jak jsou podobne veci udelane tam :-)

P.S.: Tak jsem koukal do tech testu Nette a je to tam udelane stejne :-)

Editoval arron (18. 9. 2010 23:02)

newPOPE
Člen | 648
+
0
-

arron napsal(a):

Diky moc. Na testy mim to zatial staci skor ma zarazilo to ze v API je uvedene

PresenterRequest($pres..., $method, $params, $postParams,...)

tak som predpokladal ze tak bude ficat.

Pozeral som aj tutorial a uz tam sa mi to nezdalo kedze tie POST params autor uviedol aj to $params aj do $postParams …

Edit:
Nakoniec som to vyriesil zapisom v presenteri

<?php
	$this->getPresenter()->getPost();
?>

funguje to aj v testoch aj v app cez server. Problem je v tom, ze to nie je osetrene cize surove data.

Editoval newPOPE (19. 9. 2010 18:37)

filda
Člen | 8
+
0
-

Další možnost je říct ServisLocatoru aby místo HttpRequestu vracel něco jinýho čemu půjde líp podstrčit návratový hodnoty.

David Grudl
Nette Core | 8228
+
0
-

Tohle bude poměrně brzy vyřešené, stay tuned.