Laravel应用程序开发中的测试过程

问题描述 投票:0回答:1

我在新的Laravel项目中遵循TDD技术。因此,我有一组测试,涵盖了我的控制器,模型类,服务等。这些测试大多数是HTTP测试,因此我将它们存储在/ tests / Feature目录中。此外,我很少进行单元测试,其中涉及非常具体的方法,而这些方法从HTTP测试中(不容易)实现。

如果我理解正确,则每个HTTP测试都是功能测试,因为它涵盖了Controller所包含的许多类。在那种情况下,即使HTTP测试已经涵盖了该方法,我是否应该为项目中的每个方法分别创建单元测试?如果是,我可以从中得到什么好处。

谢谢您的解释。

unit-testing testing laravel-5 functional-testing phpunit-testing
1个回答
1
投票

创建单元测试的原理是测试一小段代码,例如,如果您有一个API,那么它仅返回最近发布的10篇文章的列表,那么我猜它不需要为此创建单元测试并且可以通过编写功能测试或HTTP测试来涵盖。但是,假设您有一个端点,用户可以使用该端点将其帐户从常规类型升级为黄金类型,以便他/她可以访问更多帖子或视频。在该终结点中肯定会有很多事情发生,所以是的,除了功能测试之外,您还需要编写单元测试。另外,还有一件事是,当您编写功能测试时,应该从质量检查的角度来看它,我可以像这样对它进行分类

功能/ Http /功能=> [验证检查,响应检查=> [端点在不同情况下抛出错误,或者如果一切顺利,则返回成功]]]

Unit => [为该端点调用的小功能编写测试,或者为该端点编写测试并模拟所有内容,以便获得期望的结果]

集成=> [为您在应用程序中使用的第三方API或数据库持久性或缓存持久性编写测试]

因此,如果您有一个端点,并且正在为该端点编写测试,而功能测试已经涵盖了该端点逻辑的某些部分,那么我想没有必要为此编写更多的单元测试。

© www.soinside.com 2019 - 2024. All rights reserved.