PHPUnit\Framework\TestCase 和 Tests\TestCase 有什么区别?

Mai*_*rey 6 php testing phpunit laravel

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

功能测试=>use Tests\TestCase;

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

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

Ake*_*rts 7

PHPUnit\Framework\TestCase

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

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

Tests\TestCase

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

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

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

您可以同时使用!在可能的情况下,我使用 PHPUnit 的 TestCase 进行单元测试,并使用 Laravel 的 TestCase 进行集成和功能测试。