laravel - 当它们相互关联时,我应该如何将这些功能分成个别案例?

标签 laravel testing

假设我想测试上传功能。

  1. 用户可以上传多个文件。
  2. 文件按日期分组并放在以日期为名称的文件夹中。前任。 2018-06-04, 2018-06-03....
  3. 用户只能上传某些文件,例如jpeg, pdf...

我应该单独测试它们还是将它们组合在一起并一次性测试?在测试case 1的同时,case 2也包含在逻辑中,对吧?如果我测试case 3,case 1和case 2也会包含在逻辑中。如果我在一个案例中一起测试它们,测试用例似乎太胖了。

如果我在编写案例 1 时不包括案例 2 的逻辑,那么整个测试最终将失败,因为文件不是按日期分组的。

我应该如何进行?

最佳答案

理想情况下,每个测试应该只测试一个功能。这样:

  1. 当需求发生变化时,您只需更改一个测试
  2. 您的实时文档(测试)将更加具体且更易于理解

If I test case 3, case 1 and case 2 will also be included in the logic

不是真的。如果你测试用户是否只能上传 jpg,你不关心文件将保存在哪里。您只需要测试该用户只能选择特定的扩展名,而该服务器将拒绝其他扩展名。您甚至不需要在测试中包含文件保存组件。

另一件事是有一些辅助函数,可以准备上传数据并被大多数测试重用

关于laravel - 当它们相互关联时,我应该如何将这些功能分成个别案例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50709258/

相关文章:

php - 扩展 Eloquent 类的构造函数

reactjs - 如何在 Testcafe 中设置 react props

在设置 compileComponents 变量之前运行的 Angular2 测试

python - Django 找到测试但无法导入它们

php - 为自定义验证规则命名 - Laravel 8

laravel - 合并 Eloquent 中belongsToMany 和belongsTo 关系的结果

mysql - Laravel 在哪里和分组依据

testing - 当用户名和密码为空时单击登录按钮会抛出一条消息,如何打印显示的消息

python - 代码覆盖率和三元运算符

php - Laravel 为不同用户类型提供相同的 Controller