public function testProductCreationFailsWhenNameNotProvided()
{
$product = factory(\App\Product::class)->make(['name' => '']);
$this->post(route('api.products.store'), $product->jsonSerialize())
->seeJson(['name' => ['The name field is required.']]) /*line 86*/
->assertResponseStatus(422);
}
There was 1 error:
1) ExampleTest::testProductCreationFailsWhenNameNotProvided
ErrorException: Invalid argument supplied for foreach()
C:\xampp\htdocs\product- service\vendor\laravel\framework\src\Illuminate\Support\Arr.PHP:494
C:\xampp\htdocs\product-service\vendor\laravel\framework\src\Illuminate\Foundation\Testing\Concerns\MakesHttpRequests.PHP:231
C:\xampp\htdocs\product-service\vendor\laravel\framework\src\Illuminate\Foundation\Testing\Concerns\MakesHttpRequests.PHP:257
C:\xampp\htdocs\product-service\tests\ExampleTest.PHP:86
C:\xampp\PHP\pear\PHPUnit\TextUI\Command.PHP:176
C:\xampp\PHP\pear\PHPUnit\TextUI\Command.PHP:129
FAILURES!
Tests: 7, Assertions: 43, Errors: 1.
我承认这段代码原本不是我的 – 它是从Laravel教程复制的.它在那里工作得很好.
不幸的是,这个相关问题的答案也没有帮助我.
Laravel 5.1 + PHPunit – API test returns always invalid argument error foreach
我试图修改它以传递json数组作为参数
public function testProductCreationFailsWhenNameNotProvided()
{
$product = factory(\App\Product::class)->make(['name' => '']);
$this->post(route('api.products.store'), $product->jsonSerialize())
->seeJson(json_encode(array('name' => ['The name field is required.'])))
->assertResponseStatus(422);
}
但后来我收到了这个错误:
1) ExampleTest::testProductCreationFailsWhenNameNotProvided
TypeError: Argument 1 passed to Illuminate\Foundation\Testing\TestCase::seeJson() must be of the type array, string given, called in C:\xampp\htdocs\product-service\tests\ExampleTest.PHP on line 86
解决方法:
1) ExampleTest::testProductCreationFailsWhenNameNotProvided
TypeError: Argument 1 passed to Illuminate\Foundation\Testing\TestCase::seeJson() must be of the type array, string given, called in C:\xampp\htdocs\product-service\tests\ExampleTest.PHP on line 86
->seeJson(json_encode(array('name' => ['The name field is required.'])))
你必须改变它看起来像这样,它应该工作.
->seeJson(array('name' => ['The name field is required.']))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。