在Laravel/PHP中何处放置热修复测试?

fykwrbwg  于 2023-03-16  发布在  PHP
关注(0)|答案(2)|浏览(120)

我正在使用Laravel构建一个应用程序,发现了一个bug,所以,我想知道在哪里进行热修复测试。
测试-〉特性-〉Http -〉MyControllerTest.php,更多文件...测试-〉单元-〉模型-〉MyModelTest.php,更多文件...
我知道我必须为那个bug编写一个测试,但我不知道把它放在哪里,它与使用令牌的授权有关,一些路由没有受到保护,看起来我需要编写一个自定义中间件,我想,我还不确定,我想把它放在Feature/Http文件夹的另一个文件中,类似HotFixTest.php?,或者可能放在同一个MyControllerTest.php文件中,我不知道在哪,我能做什么?谢谢。

vatpfxk5

vatpfxk51#

如果您打算简单地实现一个中间件来修复给定的BUG,那么您可以通过简单地编写一个UnitTest来“覆盖”该实现。
我没有上下文,但是在/app/Http/Middleware/TokenGuardMiddleare中给定一个新文件,您可以创建测试/test/unit/Http/Middleware/TokenGuardMiddleare

gv8xihay

gv8xihay2#

我所做的是,根据你要做什么来修复这个错误,我会:

  • 它不应该是Tests -> Feature -> Http -> MyControllerTest.php,而应该是Tests -> Feature -> Htpp -> UserRegistration(假设MyController允许用户注册)。
  • 这意味着您应该为FEATURE测试编写文件夹名称,就像它们是什么一样,一个 * 特性 *,而不是一个文件,您不关心实现(这就是您编写HTTP测试的方式)
  • 如果修复需要您修复控制器,而不需要在控制器外部创建新代码(没有中间件或类似的东西),则只需在Test类内部创建一个新测试
  • 如果修复需要一个新的中间件或者控制器外部的东西,但是与控制器“交互”,例如,中间件、表单请求等(它们不在控制器内部或控制器中,但是补充了控制器),那么创建一个与该特性相关的新测试类,或者像前一点一样在现有类中编写测试。
  • 为什么?:因为你在测试一个特性,如果你有一个URL /user/123,它的错误是没有认证,你必须在那里创建一个新的测试,它会对/user/123做一个GET或者其他的测试,你应该期待一个401或者403,但是另一个正常的测试,如果你发送了令牌,你得到了一个200或者任何对你来说是成功的东西。看到它是绑定到特性的。你必须对每个路由都这样做,不要对中间件进行单元测试

相关问题