0

我目前使用 CIUnit (https://bitbucket.org/kenjis/my-ciunit) 使用 phpunit 测试我的 CodeIgniter 应用程序。问题是我有多个同名的控制器。我在根控制器目录中有一个名为“Blog”的控制器,并且在控制器/ajax/ 目录中有一个名为“Blog”的控制器。原因是将所有 ajax 请求与主控制器分开。

当我对这两个文件运行测试时,我收到以下错误:

PHP致命错误:无法在...中重新声明类博客

好吧,我收到这个错误并不感到惊讶。

我有什么办法来解决这个问题?

  1. ajax 目录中的控制器前缀为“ajax”(看起来只是有点愚蠢的 url/ajax/ajax_blog)
  2. 使用命名空间(我想我也需要命名空间 codeigniter)
  3. 创建 3 个单独的 phpunit.xml 文件

这不是我正在寻找的真正解决方案。我还有其他选择吗?是否有可能以某种方式单独运行每个测试套件,但仍然在一个命令中?我可以在测试套件之间“清理”对象吗?还要别的吗?

4

1 回答 1

1

除了您提到的那些之外,没有其他选项,因为在 PHP 中“卸载”类定义是不可能的。

当您正常运行 CI 时,将两个控制器命名为相同不是问题,因为每个请求只实例化一个控制器,但应该避免这种情况。

如果它只是您不喜欢的 ajax-url,则可以在路由中覆盖它(in config/routes.php):

$routes['ajax/blog'] = 'ajax/ajax_blog';
于 2012-04-25T10:56:40.093 回答