tdd - 如何测试kohana模型、 Controller

标签 tdd phpunit kohana kohana-3

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

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

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

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

最佳答案

我只能回答你的两个问题,但总比什么都不回答好;)

AD2。您可以根据 .htaccess 设置 Kohana::$environment 变量(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/

相关文章:

php - 无法使用 App::Laravel 中的错误定义测试代码

php - 如何在sphinx中使用子查询?

ruby - 使用和不使用 Rails 的快速 (Rspec) 测试

design-patterns - 当一个操作需要传递的不仅仅是结果时,你是元组/抛出/还是getContextual?

unit-testing - 'too simple to break' 有多简单? - 解释

laravel - laravel 克隆了我的模拟对象吗?

node.js - TDD 测试第一个 Node Js Express Rest Api - 单元测试中间件/ Controller /路由

sql - 如何使用 PHPUnit 使用 SQL 文件设置和拆除数据库?

php - ->bind_global() 在 Kohana 3.3 中隐藏 View

php - kohana 查询仅显示最新记录