【问题标题】:PHPUnit + CodeIgniter multiple objects with same namePHPUnit + CodeIgniter 多个同名对象
【发布时间】:2012-05-06 00:57:59
【问题描述】:

我目前使用 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 文件

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

【问题讨论】:

    标签: codeigniter phpunit


    【解决方案1】:

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

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

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

    $routes['ajax/blog'] = 'ajax/ajax_blog';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-24
      • 1970-01-01
      • 2014-05-15
      • 2010-12-16
      • 1970-01-01
      • 2014-02-05
      相关资源
      最近更新 更多