Laravel 5 在laravel中测试使用相关模型的控制器方法

Laravel 5 在laravel中测试使用相关模型的控制器方法,laravel-5,phpunit,lumen,factories,laravel-testing,Laravel 5,Phpunit,Lumen,Factories,Laravel Testing,我在拉维勒明工作。我有两个模型。对应于组织和apikeys表的组织模型和Apikey模型。apikeys表中的列organization_id是引用organizations表的id字段的外键 组织的模型如下所示 <?php namespace App; use App\Apikey use Illuminate\Database\Eloquent\Model; Class Organization Extends Model { public $table = 'organiz

我在拉维勒明工作。我有两个模型。对应于组织和apikeys表的组织模型和Apikey模型。apikeys表中的列organization_id是引用organizations表的id字段的外键

组织的模型如下所示

<?php
namespace App;
use App\Apikey
use Illuminate\Database\Eloquent\Model;

Class Organization Extends Model {

   public $table = 'organizations';
   public $fillable = [
              'name',
              'contact_name',
              'contact_phone',
              'contact_email',
              'address1',
              'state',
              'city',
              'zip',
              'country'
            ];

   public function apikeys()
   {
     return  $this->hasMany('App\Apikey');
   }
}
我的测试函数如下所示

 $factory->define(Organization::class, function ($faker) use ($factory) {
         return [
              'name' => $faker->name,
              'contact_name' => $faker->name,
              'contact_phone' => '324567',
              'contact_email' => $faker->email,
              'address1' => 'xxx',
              'state' => 'Newyork',
              'city' => 'Newyork',
              'country' => 'USA'
    ];
 });

$factory->define(Apikey::class, function ($faker) use ($factory) {
   return [
    'key' => 'xxx',
    'secret' => 'xxxx',
    'permissions' =>'111',
    'organization_id' => 7
});
 public function testApiKeyGeneration ()
 {
   factory(App\Organization::class)->create()->each(function($u) {
          $data = [
                  'organization_id' => $u->id,
                  'permissions' => '111'
                  ];

          $this->post('/createapikeyfororg' , $data)
          ->seeJson(['status' => 'ok']);
   });
  }

控制器工作正常。只是在测试中我遇到了问题。url“/createapikeyfororg”是调用控制器方法GenerateAppikeyGiveNorOrganizationId()的url。这个测试程序正确吗?我还没有尝试,我在周六问这个问题,因为我真的很忙。我在测试方面完全是新手,我很忙,希望您能提供帮助。

您忘记了
返回$this->hasmall
我不认为
$this
函数($u)中的
引用了该类。它可能引用了闭包。你能在发布之前
dd($this)
吗?
 $factory->define(Organization::class, function ($faker) use ($factory) {
         return [
              'name' => $faker->name,
              'contact_name' => $faker->name,
              'contact_phone' => '324567',
              'contact_email' => $faker->email,
              'address1' => 'xxx',
              'state' => 'Newyork',
              'city' => 'Newyork',
              'country' => 'USA'
    ];
 });

$factory->define(Apikey::class, function ($faker) use ($factory) {
   return [
    'key' => 'xxx',
    'secret' => 'xxxx',
    'permissions' =>'111',
    'organization_id' => 7
});
 public function testApiKeyGeneration ()
 {
   factory(App\Organization::class)->create()->each(function($u) {
          $data = [
                  'organization_id' => $u->id,
                  'permissions' => '111'
                  ];

          $this->post('/createapikeyfororg' , $data)
          ->seeJson(['status' => 'ok']);
   });
  }