How to stop PHP code execution when exit() in unit test?
hongdung92 opened this issue · 5 comments
ci-phpunit-test has functionality that makes all exit() and die() in your code throw CIPHPUnitTestExitException
When I use "try cache" in my code, both response and exception are returned.
ex:
try {
$data = [123];
exit();
} catch(Exception $e) {
$data = [456];
exit();
}
=> return "[123][456]" in my test case.
I don't want this, My Expected result is return "[123]"
Thanks!!!
@kenjis i have same issues, could you help me check it please?
thank you so much!
It seems the code does return nothing.
try {
$data = [123];
exit();
} catch(Exception $e) {
$data = [456];
exit();
}
Can you show the minimul code to reproduce your problem?
try {
$this->response('Success')
} catch(Exception $e) {
$this->response('Failed');
}
My response
function response($message) {
// mycode
exit();
}
It return both $this->response('Success')
and $this->response('Failed')
, I want return only $this->response('Success')
See https://github.com/kenjis/ci-phpunit-test/blob/3.x/docs/HowToWriteTests.md#codeigniter-rest-server
In your case:
try {
echo 'Success';
exit();
} catch(CIPHPUnitTestExitException $e) {
throw $e;
} catch(Exception $e) {
echo 'Failed';
exit();
}
@kenjis Good worked, My problem is solved. Thank you so much!!!