2017-09-23 33 views
0

当我运行PHPUnit的Laravel 5.5测试 - 调用未定义的方法::看到()

错误我得到这个错误:调用未定义的方法测试\功能\ ViewConcertListingTest ::看到()

这是我的代码:

类ViewConcertListingTest扩展的TestCase { 使用DatabaseMigrations;

/** @test */ 
public function user_can_view_a_concert_listing() 
{ 
    // Arrange 
    // Create a concert 
    $concert = Concert::create([ 
     'title' => 'The Red Chord', 
     'subtitle' => 'with Animosity and Lethargy', 
     'date' => Carbon::parse('December 13, 2016 8:00pm'), 
     'ticket_price' => 3250, 
     'venue' => 'The Mosh Pit', 
     'venue_address' => '123 Example Lane', 
     'city' => 'Laraville', 
     'state' => 'ON', 
     'zip' => '17916', 
     'additional_information' => 'For tickets, call (555) 555-5555' 
    ]); 

    // Act 
    // View the concert listing 
    $this->get('/concerts/' . $concert->id); 

    // Assert 
    // See the concert details 
    $this->see('The Red Chord'); 
    $this->see('with Animosity and Lethargy'); 
    $this->see('December 13, 2016'); 
    $this->see('8:00pm'); 
    $this->see('32.50'); 
    $this->see('The Mosh Pit'); 
    $this->see('123 Example Lane'); 
    $this->see('Laraville, ON 17916'); 
    $this->see('For tickets, call (555) 555-5555'); 
} 

}

任何帮助吗? 谢谢!

回答

0

您将需要使用Laravel黄昏这样的场景:

所以你的断言将是如下:

$this->browse(function ($browser) use ($user) { 
       $browser->visit('/concerts/' . $concert->id) 
       ->assertSee('The Red Chord'); 
       ->assertSee('with Animosity and Lethargy'); 
       ->assertSee('December 13, 2016'); 
       ->assertSee('8:00pm'); 
       ->assertSee('32.50'); 
       ->assertSee('The Mosh Pit'); 
       ->assertSee('123 Example Lane'); 
       ->assertSee('Laraville, ON 17916'); 
       ->assertSee('For tickets, call (555) 555-5555'); 
      }); 

您必须包括命名空间:

use Tests\DuskTestCase; 
use Laravel\Dusk\Chrome; 
0

是你指的是Laravel 5.3中可用的测试方法?这些在5.4中被删除,并作为一个单独的包提供; https://github.com/laravel/browser-kit-testing

要安装它们,使用作曲:(!强烈推荐)

composer require laravel/browser-kit-testing --dev 
0

如果其他人遇到这个错误和问题的代码看起来很熟悉,这是从Test-Driven Laravel course from Adam Wathan

如果你在使用过程中的早期经验教训沿以下,但使用Laravel 5.5,你需要更新几件事情:

  1. 相反$this->get('...');的,使用$response = $this->get('...');。使用$response->assertSee()代替$this->see()

Laravel已将HTTP测试层和帮助器方法从5.3(屏幕录像中使用的Laravel版本)更新为5.5。 5.5的功能规格应更新为以下内容:

<?php 

class ViewConcertListingTest extends TestCase 
{ 

    use DatabaseMigrations; 

    /** @test */ 
    public function user_can_view_a_concert_listing() 
    { 
     // Arrange 
     // Create a concert 
     $concert = Concert::create([ 
      'title' => 'The Red Chord', 
      // ... 
     ]); 

     // Act 
     // View the concert listing 
     $response = $this->get('/concerts/' . $concert->id); 

     // Assert 
     // See the concert details 
     $response->assertSee('The Red Chord'); 
     // ... 
    } 
} 
相关问题