gpt4 book ai didi

tdd - 如何测试 kohana 模型、 Controller

转载 作者:行者123 更新时间:2023-12-04 06:02:15 25 4
gpt4 key购买 nike

我已经使用 php 超过 5 年了。最近我在 ruby​​onrails 工作过。我在这个非常好的框架中做了一些项目。我最喜欢 rails 和 ruby​​ 的地方:它们都促进自动化测试,并且有很多丰富的库。与 PhpUnit 相比,Rspec 和 TestUnit 非常容易学习。

我必须在下个月开发一个非常大的项目。我是 cakephp 的忠实粉丝,但我意识到 cakephp 不能满足我的项目要求。我学得很快。在阅读了 Kohana 官方网站的文档后,我将在这个项目中使用 Kohana。

在对 Kohana 进行了一些搜索之后,我仍然有一些需要关注的话题

  • 测试模块缺少文档。我不清楚如何测试模型、 Controller 、功能测试。谁能提供我的想法、教程、示例、资源?
  • 应用环境不是很清楚。对不起,因为我是 ruby​​onrails 的漂亮家庭。我觉得 Rails 中的环境对我来说更有意义。我可以在特定环境中拥有一颗 gem 。例如,我有 rspec gem(用于自动化测试)仅用于测试环境,我有 unicorn gem 仅用于生产。对于那些不熟悉 ruby​​ 的人来说,gem 类似于 kohana 中的“模块”。谁能告诉我如何告诉 kohana 只在测试环境中加载“unittest”?因为我不想在生产环境中加载单元测试。
  • 在 Rails 中有一种应用程序控制台模式,称为 rails 控制台。使用 rails 控制台,我们可以通过控制台模式与模型进行交互。 Kohana有类似的东西吗?
  • 最佳答案

    我只能回答你的两个问题,但总比没有好;)

    AD2 .您可以设置Kohana::$environment基于 .htaccess(setenvgetenv)/$_SERVER 的变量环境:

    if (Arr::get($_SERVER, 'SERVER_NAME') !== 'localhost')
    {
    // We are live!
    Kohana::$environment = Kohana::PRODUCTION;

    // Turn off notices and strict errors
    error_reporting(E_ALL ^ E_NOTICE ^ E_STRICT);
    }
    else
    {
    Kohana::$environment = Kohana::DEVELOPMENT;
    error_reporting(E_ALL | E_STRICT);
    }

    然后你可以设置 Kohana::init像这样:
    Kohana::init(array(
    'base_url' => '/',
    'caching' => Kohana::$environment === Kohana::PRODUCTION,
    'profile' => Kohana::$environment !== Kohana::PRODUCTION,
    'index_file' => FALSE,
    'errors' => TRUE
    ));

    因此您的生产应用程序将启用缓存并禁用分析。
    对于模块,它几乎相同:
    if (Kohana::$environment !== Kohana::PRODUCTION)
    {
    Kohana::modules(array(
    'unittest' => MODPATH . 'unittest',
    ));
    }

    AD3 .很抱歉简洁了 - 不,没有。

    关于tdd - 如何测试 kohana 模型、 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8813115/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com