【发布时间】:2016-05-19 02:33:41
【问题描述】:
所以我编写了一个功能测试来测试上传功能,但它失败并出现以下错误:
1) UploadTest::testValidVideoUpload
Error: Call to a member function filter() on null
/.../vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:765
/.../vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:737
/.../vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:718
/.../vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithPages.php:639
/.../tests/ShareTests/UploadTest.php:19
代码是:
public function testValidVideoUpload()
{
$this->post(route('share.upload'), ['type' => 'video'])
->attach($this->test_case_files_path . 'testcase.mp4', 'file')
->seeJson(['error' => false]);
}
我正在使用:
- Laravel 5.2 稳定版
- phpUnit 5.2.2
- PHP 7.0.3-2+deb.sury.org~trusty+1 (cli) (NTS)
编辑:
我在 RESTful 服务上使用这些测试。我们可以使用attach 方法吗???因为我查看了它的实现,它使用 DOM 解析器和 CSS 选择器来确定输入名称是否真的存在于响应中!!!!
【问题讨论】:
-
你测试的方法的内容是什么?
-
如果我使用REST客户端,上传会成功。所以我很确定问题不在于那里。所以我几乎可以肯定它不会帮助你。你觉得会吗?
-
能够看到主题代码是有帮助的
-
@Jakub Zalas:我是单元测试的新手,但我很确定我说的是单元测试:|。每个
test测试一个路由,该路由由一个方法处理,因此名称为:UNIT testing。如果我错了纠正我。谢谢:-) -
你错了 :) 单元测试是对应用程序中最小的可测试部分的测试。在 OOP 中,这些是对类和方法的测试。单元测试也是隔离的,因此测试单个单元与其他单元隔离。其他任何东西都是集成测试。您的测试通过整个框架(路由等),调用您的控制器和其他协作者。这绝对不是单元测试。
标签: php laravel-5 phpunit functional-testing laravel-5.2