1

すべてのエンティティが保存されており、ai ID があります。34 行目のテストだけが合格していません。

<?php
class AssignmentTest extends TestCase
{
    protected $assignment;

    public function setUp()
    {
        parent::setUp();
        $this->assignment = new Assignment;
    }

    public function testAssignmentAssociations()
    {
        $facility = Facility::create(array(
        'name' => 'test facility',
        'code' => 'test-facility'
        ));

        $user = new User;
        $user->id = 1;

        $shift = Shift::create(array(
        'name' => 'test shift',
        'start_time' => 0,
        'end_time' => 600
        ));

        $this->assignment->facilities()->save($facility);
        $this->assignment->shift()->associate($shift);
        $this->assignment->user()->associate($user);
        $this->assignment->save();

        $this->assertEquals(1, $facility->id);
        $this->assertEquals(1, $this->assignment->facilities()->count());
        $this->assertEquals(1, $this->assignment->shift_id);
        $this->assertEquals(1, $this->assignment->user_id);
    }
}

// Facility model
public function assignments()
{
    return $this->belongsToMany('Assignment', 'assignment_facilities');
}

// Assignment model
public function facilities()
{
    return $this->belongsToMany('Facility', 'assignment_facilities');
}

編集

この行を削除すると、テストが成功するようです。割り当てを保存するときに、関連付けが成功したカウントを返さない理由に興味がありますか?

<?php
$this->assignment->save();
4

1 に答える 1

0

私はテストしていませんが、割り当てに対してそれらを関連付ける前に、シフトとユーザーのレコード自体を「保存」する必要はありませんか?

    $user = new User;
    $user->id = 1;

    $shift = Shift::create(array(
    'name' => 'test shift',
    'start_time' => 0,
    'end_time' => 600
    ));
    $shift->id = 1;


    $this->assignment->facilities()->save($facility);
    $this->assignment->shift()->save($shift);
    $this->assignment->user()->save($user);
    $this->assignment->shift()->associate($shift);
    $this->assignment->user()->associate($user);
    $this->assignment->save();
于 2013-07-15T04:33:29.210 に答える