CakePHP:调用testAction到json返回方法会导致缺少视图异常

时间:2014-12-13 14:17:01

标签: unit-testing rest cakephp

我在这里缺少什么?这是我的控制器代码:

public function calculate() {
    $this->set(array(
        "route" => array("A" => 1, "B" => 2),
        "_serialize" => array("route")
    ));

    return;
}

这是我的routes.php文件中的一行:

Router::parseExtensions();

这是我的测试代码:

    $result = $this->testAction("/itinerary/calculate.json", array(
        "method" => "POST", 
        "return" => "contents"
    ));

此代码抛出

MissingViewException: View file "C:\xampp\htdocs\fiver\app\View\Itinerary\calculate.ctp" is missing.

我显然在这里遗漏了一些东西。请帮忙。使用JSON的另一个控制器的另一个测试工作得很好

2 个答案:

答案 0 :(得分:1)

知道了。 CakePHP要求将RequestHandler组件显式添加到控制器以使扩展工作。我添加了这一行,它开始工作

public $components = array('RequestHandler');

答案 1 :(得分:0)

如果您没有/想要控制器的视图,您只需添加

即可
$this->autoRender = false;

//编辑:只有你不想要输出才能工作但事实并非如此