php - PHPUnit\Framework\TestCase 和 Tests\TestCase 有什么区别?
问题描述
我注意到在示例测试中,这两个类是内置的。
功能测试=>use Tests\TestCase;
单元测试=>PHPUnit\Framework\TestCase;
两者有什么区别?在哪些情况下您使用其中一种?
解决方案
PHPUnit\Framework\TestCase
这是 PHPUnit 测试的标准开箱即用父级。它仅具有 PHPUnit 提供的功能。
当您想要没有 Laravel 知识或脚手架的“真正的”单元测试时,最好使用它。它们也快得多。
Tests\TestCase
这是依赖 Laravel 应用程序运行的多种测试(可以是单元、集成或功能)的父类。这些场景可能包括:
- 使用 Eloquent 工厂创建模型
- 使用 Facades 和他们的假货
- 使用全局帮助器的单元测试组件(例如
config()
) - 为每个测试使用数据库事务和/或重置
- 使用 Laravel 提供的任何其他增强功能和断言
PHPUnit\Framework\TestCase
是 的父级Tests\TestCase
,因此 PHPUnit 的所有标准功能也都可用。
你可以同时使用!我尽可能使用 PHPUnit 的 TestCase 进行单元测试,并使用 Laravel 的进行集成和功能测试。
推荐阅读
- java - 一旦 ArrayLists 无法再合并,如何退出 while 循环?
- laravel - 如何将数据从控制器发送到laravel中的rest api?
- azure-data-factory-2 - 如何在 Azure 数据工厂复制活动中使用源列对目标数据湖中的数据进行动态分区?
- r - 如何解决 r 中的“参数 x 为空”错误(Shiny Web 应用程序)
- python - 如何使用 Python Selenium 制作转发 YouTube 视频?
- node.js - 在我的 testcafe 项目中尝试 Jenkins,但构建失败
- javascript - Redux thunk 不会更改输入字段的值
- extjs - Ext js 7 现代面板.Resizer 拆分器配置
- python - 我将python转换为c编程。是否可以在另一个函数中定义一个函数?蟒蛇到C
- php - Laravel 8:试图获取非对象的属性“名称”