2016-12-05 72 views
1

的正文,名称或ID属性的链接我正在使用打开模式编辑记录的按钮测试页面。InvalidArgumentException:无法找到具有[编辑]

$this->visit('/admin/dashboard/units') 
      ->see($site->name . ' ' . '~' . ' ' . 'Units') 
      ->see($unit_type->name) 
      ->see($unit->unit_type_id) 
      ->see($unit->status) 
      ->click('Edit') 

在我的刀片文件我有:

<a class="button warning" data-open="editUnit{{ $unit->id }}">Edit</a> 

,但仍然没有工作

,但我得到这个错误:

There was 1 error:

1) UnitsTest::testEditUnit InvalidArgumentException: Could not find a link with a body, name, or ID attribute of [Edit].

更新

我也试过路过一个id这样

<a id="Edit" class="button warning" data-open="editUnit{{ $unit->id }}">Edit</a> 
+0

你可以尝试给按钮一个唯一的ID,并按它的ID代替。不知道它为什么找不到按钮 - 它实际上似乎是有效的。 –

+0

很可能它没有找到该对象,因为它在测试过程中未被创建。尝试给它一个ID并搜索它。其他方法是转储输出并搜索实际内容。 – melanholly

+0

我已经将一个ID传递给了一个标签,但仍然没有工作 –

回答

0

的问题是,我是在它自己的测试编辑表单但它是当前页面的一部分,在一个模式。所以我将测试与创建测试结合起来。

$this->visit('/admin/dashboard/units') 
      ->see($site->name . ' ' . '~' . ' ' . 'Units') 
      ->seePageIs('/admin/dashboard/units') 
      ->type('Unit 1', 'name') 
      ->select($unit_type->id, 'unit_type_id') 
      ->press('Add Unit') 
      ->see('Unit saved successfully') 
      ->see('Unit 1') 
      ->seeInDatabase('units', [ 
       'name' => 'Unit 1', 
       'unit_type_id' => $unit_type->id 
      ]) 
      ->click('Edit') 
      ->type('Edited Unit', 'name') 
      ->select($unit_type->id, 'unit_type_id') 
      ->press('Save') 
      ->see('Unit Updated Successfully') 
      ->see('Edited Unit') 
      ->seeInDatabase('units', [ 
       'name' => 'Edited Unit', 
       'unit_type_id' => $unit_type->id 
      ]) 
      ->click('Delete') 
      ->press('Yes') 
      ->see('Unit Deleted Successfully') 
      ->dontSee('Edited Unit') 
      ->dontSeeInDatabase('units', [ 
       'name' => 'Edited Unit', 
       'unit_type_id' => $unit_type->id 
      ]); 

另外值得注意的是,随着从laravel 5.4测试方法如visitseeclick已被删除。看到这个link和亚当有很好的升级tutorials

相关问题