Laravel 5 在laravel中测试使用相关模型的控制器方法
我在拉维勒明工作。我有两个模型。对应于组织和apikeys表的组织模型和Apikey模型。apikeys表中的列organization_id是引用organizations表的id字段的外键 组织的模型如下所示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
<?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']);
});
}