1) Pierwszy problem to pobranie jakiegoś artykułu po jego identyfikatorze. Nie wiem pod jakimi ID znajdują się artykuły dlatego wymyśliłem sobie tak, że moje API wylosuje artykuł jeśli jako ID wpiszemy wartość "-1". Czy taki myk jest dopuszczalny? W innym przypadku wydaje mi się, że musiałbym stworzyć obiekt modelu i wywołać metodę pobierz losowy artykuł. Czy też inne rozwiązanie to utworzenie obiektu modelu i wywołanie metody pobierz artykuły z limitem 1, a potem uruchomienie API z wyciągniętym ID.
(tak wiem, że tutaj powinno się to GET załatwić

public function testGetArticleAction() { // request method, url, post data ... }
2) Czy w testach tworzy się warunki - jeśli pierwszy assert się nie wykona to nie wykonuj następnych bo na pewno nie będą działać? Oto przykład:
public function testGetArticleAction() { // request method, url, post data $this->assertEquals('200', $this->app->response->status()); // tutaj kilka assert związanych z $result }
Jeśli wystąpi 500 bo np. aplikacja się wysypie i wszystkie pozostałe assert będą negatywne. Ewentualnie podpytanie co w przypadku gdy zwróci 500 i brak danych do obróbki spowoduje wysypanie się aplikacji, fatal error czy też wyjątek. Czy należy testy przed tym zabezpieczać?
3) Czy mogę w jednej metodzie dwa razy uruchomić moje api dla różnych wartości? Np. w jednym chce przetestować zwrócenie wyniku prawidłowego, w drugim, że artykułu nie ma.
public function testGetArticleAction() { // request method, url, post data $this->assertEquals('200', $this->app->response->status()); $data = json_decode($result); // tutaj jakieś testy // drugie wywołanie $result2 = $this->request('POST', '/apiArticle/get-article', array('slim.input' => 'id=99999999999')); $this->assertEquals('200', $this->app->response->status()); $data = json_decode($result); $this->assertEquals('article_nof_found', $data->err->code); }