This repository was archived by the owner on Jul 2, 2026. It is now read-only.
Description When testing controllers with AtoumBundle, we need to test some failure use case to check all the behavior of the controller.
Exemple :
/**
* Status controller
*/
class StatusController extends Controller
{
/**
* Status action
*
* @return Response
*/
public function getStatusAction ()
{
try {
$ this ->get ('some.service ' )->someMethod ();
} catch (\Exception $ e ) {
return new Response ($ e ->getMessage (), 500 , ['content-type ' => 'text/plain ' ]);
}
return new Response ('OK ' , 200 , ['content-type ' => 'text/plain ' ]);
}
}
I want to test each use case of this controller : service is up, and service is down.
So, i want to write something like this :
use atoum \AtoumBundle \Test \Controller \ControllerTest ;
/**
* StatusController test
*/
class StatusController extends ControllerTest
{
/**
* Test getStatusAction
*/
public function testGetStatusAction ()
{
$ this
->given (
$ client = static ::createClient (),
$ crawler = $ client ->request ('GET ' , '/status ' ),
$ response = $ client ->getResponse ()
)
->then
->integer ($ response ->getStatusCode ())
->isEqualTo (200 )
->string ($ response ->getContent ())
->isEqualTo ('OK ' )
;
$ mock = new \mock \Some \Service ();
$ mock ->getMockController ()->someMethod () = function () {
throw new \Exception ('Oops! ' );
};
$ this
->given (
$ client = static ::createClient (),
$ client ->getKernel ()->setService ('some.service ' , $ mock ),
$ crawler = $ client ->request ('GET ' , '/status ' ),
$ response = $ client ->getResponse ()
)
->then
->integer ($ response ->getStatusCode ())
->isEqualTo (500 )
->string ($ response ->getContent ())
->isEqualTo ('Oops! ' )
;
}
}
Possible ?
Reactions are currently unavailable
When testing controllers with AtoumBundle, we need to test some failure use case to check all the behavior of the controller.
Exemple :
I want to test each use case of this controller : service is up, and service is down.
So, i want to write something like this :
Possible ?