在 Laravel + React SPA 应用程序中应用 TDD

Posted

技术标签:

【中文标题】在 Laravel + React SPA 应用程序中应用 TDD【英文标题】:Applying TDD in an Laravel + React SPA app 【发布时间】:2020-05-06 03:21:35 【问题描述】:

我知道mocha,chai等测试库在Javscript中被广泛使用,但是在php中,phpunit,phpspec被广泛使用。我正在开发一个 Laravel + React SPA 应用程序,这意味着它是基于 API 的。所以我正在考虑我只使用mocha,没有phpunit的chai,phpspec。它是一种广泛使用的方法吗?或者,我应该使用 phpunit、phpspec 吗?

【问题讨论】:

您是否将前端用作单独的实体,而 laravel 用作休息 api(使用 cors)? 不,前后端在同一个项目中。 这是softwareengineering.stackexchange.com 的更多问题。无论如何,我的 2 美分:你为什么不测试你的 PHP 逻辑/输出?如果你不测试你的后端,你将如何验证你在后端的更改没有破坏任何东西? 【参考方案1】:

最好用 phpunit/phpspec 测试 php 特定的东西,因为它可以让您更好地测试特定的快乐、替代或错误路径。根据测试三角形,您应该编写大量单元测试(phpunit)和一些验收测试(mocha)。

让任何端点都可以选择对 3 个值进行排序和过滤。如果您只测试 API,如果您想测试所有不同的场景,您应该编写 16 (4 x 4) 个测试。仅使用基于 API 的测试,这将占用大量时间。最好在较低级别测试这些路径。这样,您只需为您的 API 编写 1 个测试和一些比 API 测试更轻量的单元测试。

【讨论】:

以上是关于在 Laravel + React SPA 应用程序中应用 TDD的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Laravel Sanctum 处理 SPA 和基于令牌的身份验证

使用 Laravel 后端部署 Vue SPA

laravel 和 vue SPA 应用程序中的多个入口网络路由

如何使用 Laravel 作为 Angular SPA 应用程序的后端?

为啥 Laravel 附带 Vue? (SPA 与 MVC)

React单页应用SPA