快速入门

快速入门


测试:入门指南

介绍

Laravel 天生就具有测试的基因。事实上,Laravel 默认就支持用 PHPUnit 来做测试,并为你的应用程序配置好了 phpunit.xml 文件。框架还提供了一些便利的辅助函数,让你可以更直观的测试你的应用程序。

默认情况,你的应用tests目录中包含两个子目录:FeatureUnit。单元测试是针对你的代码中非常少,而且相对独立的一部分代码来进行的测试。实际上,大部分单元测试都是针对单个方法进行的。功能测试是针对大面积代码进行的测试,包括多个对象之间的交互,甚至是对 JSON 端点的完整 HTTP 请求。

FeatureUnit目录中都提供一个ExampleTest.php测试示例文件。安装一个新的 Laravel 应用程序之后,在命令行下运行phpunit命令,即可运行测试。

环境

在使用phpunit进行测试时,Laravel 将根据phpunit.xml文件设定的环境变量自动将环境设置为testing,并将 Session 及缓存以array的形式存储,也就是说在测试时不会持久化任何 Session 或缓存数据。

你可以随意创建其它必要的测试环境配置。testing环境变量可以在phpunit.xml文件中修改,但是在运行测试之前,请确保使用config:clearArtisan 命令来清除配置信息的缓存!

此外,你还可以在你的项目根目录下创建一个.env.testing文件,在运行单元测试,或者使用带有--env=testing选项的 Artisan 命令时,.env文件中的变量会被这个文件覆盖。

定义并运行测试

可以使用 Artisan 命令make:test创建一个测试用例:

// 在 Feature 目录下创建一个测试类...php artisan make:test UserTest// 在 Unit 目录下创建一个测试类...php artisan make:test UserTest --unit

测试类生成之后,你就可以像平常使用 PHPUnit 一样来定义测试方法。要运行测试只需要在终端上运行phpunit命令即可:

assertTrue(true); } }

{note} 如果要在你的测试类中定义自己的setUp/tearDown方法,请确保调用了父类中的parent::setUp()/parent::tearDown()方法。

本文章首发在 LearnKu.com网站上。