首页 > 解决方案 > PHPUnit\Framework\TestCase 和 Tests\TestCase 有什么区别?

问题描述

我注意到在示例测试中,这两个类是内置的。

功能测试=>use Tests\TestCase;

单元测试=>PHPUnit\Framework\TestCase;

两者有什么区别?在哪些情况下您使用其中一种?

标签: phplaraveltestingphpunit

解决方案


PHPUnit\Framework\TestCase

这是 PHPUnit 测试的标准开箱即用父级。它仅具有 PHPUnit 提供的功能。

当您想要没有 Laravel 知识或脚手架的“真正的”单元测试时,最好使用它。它们也快得多。

Tests\TestCase

这是依赖 Laravel 应用程序运行的多种测试(可以是单元、集成或功能)的父类。这些场景可能包括:

  • 使用 Eloquent 工厂创建模型
  • 使用 Facades 和他们的假货
  • 使用全局帮助器的单元测试组件(例如config()
  • 为每个测试使用数据库事务和/或重置
  • 使用 Laravel 提供的任何其他增强功能和断言

PHPUnit\Framework\TestCase是 的父级Tests\TestCase,因此 PHPUnit 的所有标准功能也都可用。

你可以同时使用!我尽可能使用 PHPUnit 的 TestCase 进行单元测试,并使用 Laravel 的进行集成和功能测试。


推荐阅读