单元测试

目录

基础介绍

单元测试可以让你测试你的代码, 并验证它是否正常工作. 事实上, 一些人的建议是, 在你写代码之前你应该先写测试! laravel提供了和流行的PHPUnit测试库的美丽的整合, 使得它很容易上手编写测试. 事实上, Laravel框架本身有数以百计的单元测试!

创建单元测试

你的所有的应用程序的测试, 都在application/tests目录下. 在这个目录, 你会发现一个基本的example.test.php文件. 看下它的内容:

<?php

class TestExample extends PHPUnit_Framework_TestCase {

    /**
     * Test that a given condition is met.
     *
     * @return void
     */
    public function testSomethingIsTrue()
    {
        $this->assertTrue(true);
    }

}

特别注意.test.php的文件后缀. 这告诉Laravel, 在运行测试时它应包含这一个类作为测试用例. 任何没有此后缀的文件将不会被认为是一个测试案例

如果你正在编写一个bundle的测试, 只是把他们放在bundle下的tests目录就好. laravel会做好剩下的工作!

欲了解更多有关创建测试用例的详细信息, 请参阅 PHPUnit文档.

运行单元测试

运行测试, 可以使用Laravel的Artisan的命令行工具:

通过Artisan的命令行工具运行程序:

php artisan test

运行bundle的单元测试:

php artisan test bundle-name

从测试中调用控制器

这是一个从测试中调用控制器的例子:

从测试中调用控制器:

$response = Controller::call('home@index', $parameters);

从测试中获得控制器实例:

$controller = Controller::resolve('application', 'home@index');

提示:用Controller::call执行控制器动作时控制器的动作过滤器仍会被执行.