php - 如何在 CakePHP 1.2 中将查询字符串传递给 testAction?

标签 php unit-testing cakephp cakephp-1.2

在 CakePHP 中,在 url 中放置一个查询字符串不会导致它像通常直接调用 Controller 时那样被自动解析和拆分。

例如:

$this->testAction('/testing/post?company=utCompany', array('return' => 'vars')) ;

将导致:

[url] => /testing/post?company=utCompany

通过网络浏览器直接调用 url 会导致:

[url] => Array
    (
        [url] => testing/post
        [company] => utCompany
    )

在不编辑 CakePHP 源代码的情况下,是否有某种方法可以在运行单元测试时拆分查询字符串?

最佳答案

我有一个 hack(即可能不适用于 future 的 CakePHP 版本)或未记录的功能。

如果第二个 testAction 参数包含一个名为“url”的命名数组,那么这些值将被放置在 Controller 中的 $this->params 对象中。这为我们提供了与直接调用 Controller 时相同的最终结果。

$data = array ('company' => 'utCompany') ;

$result = $this->testAction('/testing/post', array
(
    'return' => 'vars', 
    'method' => 'get', 
    'url' => $data)
) ; 

对于我需要做的事情,我对这种方法很满意。我会尽快向社区公开这个问题,以便将来可以提供更好的答案。

关于php - 如何在 CakePHP 1.2 中将查询字符串传递给 testAction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/200925/

相关文章:

cakephp - 链接到 cakephp 中的管理页面

php - 检索 Cakephp 2 分页中自定义限制的分页记录总数

php - 在 PHP 中返回 google 搜索的第一个结果的链接

android - java.lang.NoClassDefFoundError : Test Module could not resolve classes of other Feature Module, 单元测试 - Kotlin - Android

php - 如何在laravel excel中增加行限制导出excel

PHPUnit 模拟特征

java - 如何对扩展/继承第 3 方类的类进行单元测试

php - CakePHP : Incrementing correctly based on last value in DB table (check for correct number base)

php - Stackoverflow 实时更新如何工作?

php - 我如何在 codeigniter 中运行 mysql 转储文件