Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无效参数异常-Laravel单元测试_Laravel_Phpunit_Factory - Fatal编程技术网

无效参数异常-Laravel单元测试

无效参数异常-Laravel单元测试,laravel,phpunit,factory,Laravel,Phpunit,Factory,我正在运行一个单元测试来检查这一点 查看页面已存在 AssertSee该文本显示在页面上,并带有字符串限制 我收到一个无效参数异常: 1) Tests\Feature\ViewAllPostTest::testCanViewAllPosts InvalidArgumentException: You requested 1 items, but there are only 0 items available. C:\projects\car-torque-laravel\vendor\lar

我正在运行一个单元测试来检查这一点

  • 查看页面已存在
  • AssertSee该文本显示在页面上,并带有字符串限制
  • 我收到一个无效参数异常:

    1) Tests\Feature\ViewAllPostTest::testCanViewAllPosts
    InvalidArgumentException: You requested 1 items, but there are only 0 items available.
    
    C:\projects\car-torque-laravel\vendor\laravel\framework\src\Illuminate\Support\Arr.php:472
    C:\projects\car-torque-laravel\vendor\laravel\framework\src\Illuminate\Support\Collection.php:1486
    C:\projects\car-torque-laravel\database\factories\PostFactory.php:12
    C:\projects\car-torque-laravel\vendor\laravel\framework\src\Illuminate\Database\Eloquent\FactoryBuilder.php:274
    C:\projects\car-torque-laravel\vendor\laravel\framework\src\Illuminate\Database\Eloquent\FactoryBuilder.php:292
    C:\projects\car-torque-laravel\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\GuardsAttributes.php:122
    C:\projects\car-torque-laravel\vendor\laravel\framework\src\Illuminate\Database\Eloquent\FactoryBuilder.php:300
    C:\projects\car-torque-laravel\vendor\laravel\framework\src\Illuminate\Database\Eloquent\FactoryBuilder.php:219
    C:\projects\car-torque-laravel\vendor\laravel\framework\src\Illuminate\Database\Eloquent\FactoryBuilder.php:178
    C:\projects\car-torque-laravel\tests\Feature\ViewAllPostTest.php:19
    
    我的源代码如下:

    测试功能

    namespace Tests\Feature;
    
    use App\Post;
    use Tests\TestCase;
    
    class ViewAllPostTest extends TestCase
    {
    
        /**
         * @group posts
         *
         * @return void
         */
        public function testCanViewAllPosts()
        {
            //arrange
            $post = factory(Post::class)->create();
    
            //action
            $response = $this->get('/posts');
    
            //assert
            $response->assertStatus(200);
            $response->assertSee($post->body);
            $response->assertSee(str_limit($post->body));
    
        }
    }
    
    工厂级

    use App\Post;
    use App\User;
    use Faker\Generator as Faker;
    
    $factory->define(Post::class, function (Faker $faker) {
        return [
            'body' => $faker->text,
            'user_id' => User::all()->random()->id,
            'created_at' => now(),
            'updated_at' => now(),
        ];
    });
    

    'user\u id'=>user::all()->random()->id,


    在工厂的上面一行中,您希望从用户表中获得随机id。但是在运行测试之前,您是否创建了任何用户。在使用post factory创建post之前,至少应创建一个用户

    感谢您的投入,非常感谢Imran