Pest 的 Given-When-Then 插件
发布于 作者: Paul Redmond
Given-When-Then (GWT) 是一个将行为风格测试引入 Pest 的插件
GWT 是一个简单的 API,允许你以行为为中心的结构来组织你的测试。 Given-When-Then 分离使测试更容易一目了然。
使用 GWT 进行行为驱动测试有助于阐明测试代码的三个不同步骤,包括 1) 准备应用程序状态 (given),2) “执行”阶段 (when),以及 3) 结果阶段 (then),该阶段断言先前步骤的预期结果
use App\Exceptions\BlockedUserException;use App\Models\User;use function Pest\Gwt\scenario;use function Pest\Laravel\assertDatabaseHas; scenario('activate user') ->given(fn() => User::factory()->create()) ->when(fn(User $user) => $user->activate()) ->then(fn(User $user) => assertDatabaseHas('users', [ 'id' => $user->id, 'activated' => true, ])); scenario('activate blocked user') ->given(fn() => User::factory()->blocked()->create()) ->when(fn(User $user) => $user->activate()) ->throws(BlockedUserException::class);
该仓库包括 更多示例,展示了 Pest 的 GWT 风格测试,帮助你入门。 你可以在 GitHub 上了解有关此包的更多信息,获取完整的安装说明,并查看 源代码。