我正在使用phpunit框架,我有这样的代码:
public function A() {
try {
(...some code...)
die (json_encode ($data));
}
catch (Exception $e) {
die(false);
}
}
Run Code Online (Sandbox Code Playgroud)
这个函数是通过AJAX调用的,我不能用return替换die.问题是:如何使用这样的代码进行单元测试?
断言,我不能用它.
谢谢.
Mat*_*oli 17
你无法测试......
有时单元测试会带来这样的问题(不可测试的情况).这通常意味着问题不在于测试,而在于您的代码及其架构.
在这里你不应该使用该die
函数(实际上你不应该使用它die
来返回HTTP响应),但是echo
json然后让脚本正确完成(或者return
json和echo
它在其他地方).
为了测试这个,你可以捕获输出并检查它(这是一个基本的例子,我猜想有更好的).
结论:问题在于您的代码,修复此问题然后您可以尝试对其进行测试.如果你不能,那么没有测试.