Laravel 应用程序开发中的测试过程
Testing process in Laravel application development
我在我的新 Laravel 项目中遵循 TDD 技术。因此,我有一组测试,涵盖我的控制器、模型 类、服务等。这些测试大部分是 HTTP 测试,所以我将它们存储在 /tests/Feature 目录中。此外,我几乎没有单元测试,它们涵盖了非常具体的方法,无法(轻松)从 HTTP 测试中访问这些方法。
如果我没理解错的话,每个HTTP测试都是一个功能测试,因为它覆盖了很多类包含的Controller。在那种情况下,我是否应该为项目中的每个方法单独创建单元测试,即使它已经被 HTTP 测试覆盖?如果是,我能从中得到什么好处。
提前感谢您的解释。
创建单元测试的理念是测试一小段代码,例如,如果您有一个 API,那么它只会 return 列出最近 10 篇帖子我想没有必要为此创建单元测试,它可以通过编写功能测试或 HTTP 测试来覆盖。但我们假设您有一个端点,用户使用该端点将他的帐户从常规类型升级到黄金类型,这样 he/she 就可以访问更多帖子或视频。该端点肯定会发生很多事情,所以是的,除了功能测试之外,您还需要编写单元测试。另外还有一点就是大家写功能测试的时候应该站在QA的角度来看,我可以这样分类
Functional/Http/Feature => [验证检查、响应检查=>[端点在不同情况下抛出错误或 return 如果一切顺利则成功]]
Unit => [为该端点调用的小函数编写测试,或者为该端点编写测试并模拟所有内容,以便获得您期望的结果]
集成 => [为您在应用程序中使用的第三方 API 或数据库持久性或缓存持久性编写测试]
因此,如果您有一个端点并且您正在为该端点编写测试并且您的功能测试已经涵盖了该端点逻辑的某些部分,那么我想没有必要为它编写更多的单元测试。
我在我的新 Laravel 项目中遵循 TDD 技术。因此,我有一组测试,涵盖我的控制器、模型 类、服务等。这些测试大部分是 HTTP 测试,所以我将它们存储在 /tests/Feature 目录中。此外,我几乎没有单元测试,它们涵盖了非常具体的方法,无法(轻松)从 HTTP 测试中访问这些方法。
如果我没理解错的话,每个HTTP测试都是一个功能测试,因为它覆盖了很多类包含的Controller。在那种情况下,我是否应该为项目中的每个方法单独创建单元测试,即使它已经被 HTTP 测试覆盖?如果是,我能从中得到什么好处。
提前感谢您的解释。
创建单元测试的理念是测试一小段代码,例如,如果您有一个 API,那么它只会 return 列出最近 10 篇帖子我想没有必要为此创建单元测试,它可以通过编写功能测试或 HTTP 测试来覆盖。但我们假设您有一个端点,用户使用该端点将他的帐户从常规类型升级到黄金类型,这样 he/she 就可以访问更多帖子或视频。该端点肯定会发生很多事情,所以是的,除了功能测试之外,您还需要编写单元测试。另外还有一点就是大家写功能测试的时候应该站在QA的角度来看,我可以这样分类
Functional/Http/Feature => [验证检查、响应检查=>[端点在不同情况下抛出错误或 return 如果一切顺利则成功]]
Unit => [为该端点调用的小函数编写测试,或者为该端点编写测试并模拟所有内容,以便获得您期望的结果]
集成 => [为您在应用程序中使用的第三方 API 或数据库持久性或缓存持久性编写测试]
因此,如果您有一个端点并且您正在为该端点编写测试并且您的功能测试已经涵盖了该端点逻辑的某些部分,那么我想没有必要为它编写更多的单元测试。