基于 Laravel 5.7 开发博客应用系列(一) —— 创建项目和测试配置
注:本项目基于 Laravel 5.7 开发,本地环境是 Mac + Laradock。在开始此项目之前,假设你已经熟悉从入门到精通系列中的所有 Laravel 环境配置和功能特性,如果有任何不清楚的地方,也可以随时翻阅该系列教程以及 Laravel 文档了解细节。
1、创建博客项目
首先,在本地通过 Composer 安装一个全新的 Laravel 项目 blog57
:
composer create-project laravel/laravel blog57 --prefer-dist
你也可以安装器安装:
laravel new blog57
,使用 Composer 的好处是可以在不同版本之间切换,比如,如果你使用的是 Laravel 5.5 版本,可以这样指定安装 5.5 版本的新应用:composer create-project laravel/laravel blog55 --prefer-dist 5.5.*
。
在数据库中新增一个名为 blog57
的数据库,然后修改 blog57
应用根目录下的 .env
文件的数据库配置信息。
然后在应用根目录下运行如下命令初始化前端资源:
npm install
然后再将该应用的本地虚拟域名配置为 blog57.test
,即可在浏览器中通过 http://blog57.test
访问应用了:
2、运行测试
Laravel 集成的单元测试和功能测试(基于 PHPUnit)功能是开箱即用的,甚至还提供了简单的单元测试和功能测试示例。
要运行 PHPUnit,在项目根目录下简单运行 vendor/bin/phpunit
命令即可:
如果你想通过 Composer 运行 PHPUnit 的话,可以在 composer.json
文件中做如下配置:
"scripts": {
"test" : [
"vendor/bin/phpunit"
],
...
},
这样就可以通过 composer test
运行测试了。
Laravel 中的 PHPUnit 配置
在新创建的 Laravel 项目根目录下有一个 phpunit.xml
文件,该文件包含了 PHPUnit 的配置信息。
查看 phpunit.xml
文件会看到测试文件位于 tests
目录下,该目录下默认已经有两个示例测试文件了:
Unit/ExampleTest.php
—— 包含一个testBasicExample()
测试,Unit
目录下包含的是单元测试类。Feature/ExampleTest.php
—— 也包含一个testBasicExample()
测试,用于测试访问应用首页返回状态码是否是 200,Feature
目录下包含的是功能测试类。
单元测试和功能测试类都继承自 Tests\TestCase
基类,TestCase
类提供了很多针对 Laravel 应用的方法和属性用于单元测试和功能测试。
下面我们来看看 Feature/ExampleTest.php
中的 testBasicExample()
方法:
public function testBasicTest()
{
$response = $this->get('/');
$response->assertStatus(200);
}
该测试会访问应用首页并断言响应状态码是否是 200
,还有比这更简单的测试实现吗?!我们通过配置虚拟域名访问页面可以直观看到页面效果,通过编写单元测试和功能测试可以实现测试驱动开发,更高效地完成应用测试和迭代式开发。
本文分享自微信公众号 - xueyuanjun(geekacademy)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。
- 基于 Laravel 开发博客应用系列 —— 从测试开始(一):创建项目和PHPUnit
- 基于 Laravel 开发博客应用系列 —— 从测试开始(二):使用Gulp实现自动化测试
- 基于 Laravel 开发博客应用系列 —— 项目必备软件安装
- 基于 Laravel 开发博客应用系列 —— 设置 Linux/Mac 本地开发环境
- 基于 Laravel 开发博客应用系列 —— Homestead 和 Laravel 安装器
- 基于 Laravel 开发博客应用系列 —— 设置 Windows 本地开发环境
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(五)
- 应用 Rational 工具简化基于 J2EE 的项目第 9 部分: 产品化开发与测试
- 应用 Rational 工具简化基于 J2EE 的项目第 9 部分: 产品化开发与测试
- Web开发、测试环境搭建(LAMP、SVN服务器、Laravel项目创建)
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(一)
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(九)
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(二)
- 1:Win8 Metro应用开发的第一次学习1:创建一个 Metro 项目——Win8Y团队手把手教您Win8 Metro应用开发系列
- 1:Win8 Metro应用开发的第一次学习1:创建一个 Metro 项目——Win8Y团队手把手教您Win8 Metro应用开发系列
- 1:Win8 Metro应用开发的第一次学习1:创建一个 Metro 项目——Win8Y团队手把手教您Win8 Metro应用开发系列
- SpringMVC经典系列-03基于Spring2.5采用XMl配置的方式进行项目开发---【LinusZhu】
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(四)
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(七)
- 基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(六)