dczajkowski / auth-tests
Laravel 内置认证模块的认证测试。
Requires
- laravel/framework: ^8.0
This package is auto-updated.
Last update: 2024-09-05 20:18:50 UTC
README
⚠️ 弃用通知 ⚠️
自 Laravel 8 开始,不鼓励在新的 Laravel 安装中使用 laravel/ui 包。 此包仅应与已创建的、使用 Laravel 7 或更低版本创建并使用 laravel/ui 认证控制器的应用程序一起使用。
所有已经使用 laravel/ui 的应用程序都将获得此包的新 Laravel 版本更新,尽管未来可能会停止支持。这并不意味着您无法使用此包或升级到新的 Laravel 版本,但升级到主要版本可能需要此包用户的手动更改。
安装 Laravel 8 及以上版本的认证脚手架的新方法是使用 Laravel 安装程序的 --jet
选项。Laravel Jetstream 将所有其控制器隐藏在包内部,这意味着测试这些控制器没有意义,因为它们 已经在包内部进行了测试。
版本控制
此包的版本反映了当前 Laravel 框架的主要版本。例如:如果 Laravel 框架的版本是 5.6,则与此包兼容的版本将是 5.6.*
。
由于 Laravel 版本控制方案的变化,版本 6.1.* 将旨在与 Laravel 6.1.* 版本兼容。例如,auth-tests 版本 6.1.1 和 6.1.20 都将与 Laravel 6.1.* 兼容
安装
在安装之前,请确保您已使用
--auth
标志创建了前端视图的脚手架,例如。composer require laravel/ui && php artisan ui vue --auth
composer require dczajkowski/auth-tests --dev php artisan make:auth-tests --without-email-verification
通过在 <php>
标签之间添加以下两行来编辑 phpunit.xml
文件
<server name="DB_CONNECTION" value="sqlite"/> <server name="DB_DATABASE" value=":memory:"/>
或者,使用与 sqlite 不同的数据库,但也不同于开发中使用的数据库。
使用电子邮件验证功能
如果您想使用电子邮件验证功能,您必须进行以下更改
- 更新
routes/web.php
- Auth::routes(); + Auth::routes(['verify' => true]);
- 更新
app/Models/User.php
- class User extends Authenticatable + class User extends Authenticatable implements MustVerifyEmail
选项
有四个标志可以自定义您的测试。您可以使用它们的任何组合。(所有标志都有它们的简写版本,例如 --zonda
或 -z
)
# make:auth-tests public function testUserCanLogout() { // } # make:auth-tests --snake-case public function test_user_can_logout() { // } # make:auth-tests --annotation /** @test */ public function userCanLogout() { // } # make:auth-tests --public function testUserCanLogout() { // } # make:auth-tests --curly public function testUserCanLogout() { // } # make:auth-tests -caps # or --zonda /** @test */ function user_can_logout() { // }
从版本 5.7 开始,添加了一个新的电子邮件验证测试。您可以通过运行 --without-email-verification
来省略它。
要查看所有标志,请运行 php artisan make:auth-tests --help
。
更新
要在此包的新版本发布时更新测试
composer update dczajkowski/auth-tests php artisan make:auth-tests
警告!运行此命令时,将丢失此包提供的所有文件更改!
自动化工作流程
您不需要在每个项目中手动包含此包,只需创建一个 bash 函数来自动执行此操作。我已经在我的个人函数 这里 包含了它。您可以随意编辑它并按需使用。
贡献
请随意为此存储库提交 PR。
许可
此包是开源软件,根据 MIT 许可证(与 Laravel 本身相同)许可。