2017-10-06 1 views
1

J'essaie de configurer un test unitaire simple pour une méthode de mon contrôleur.Laravel 5.5 Méthode de contrôleur de test unitaire

Les objectifs sont de tester si la vue a une valeur attendue.

/** 
* Does the homepage receive all companies when there is no licensekey provided. 
* 
* @return void 
*/ 
public function testAllCompaniesOnHomepageWithoutLicensekey() 
{ 
    $this->call('GET', '/'); 

    $allCompanies = Company::all(); 

    $this->assertViewHas('allCompanies', $allCompanies); 
} 

Dans mon conosle je reçois l'erreur suivante:

Error: Call to undefined method Tests\Unit\ExampleTest::assertViewHas()

Je ne sais pas si ce n'est plus availbale dans Laravel 5.5?

Quelqu'un sait comment je peux tester mon objectif?

+0

@Troyer Je ne vois pas pourquoi j'utiliser Dusk pour cela. Je n'essaie pas de faire des browsertests. – Chris

Répondre

2

Etes-vous en train de migrer à partir d'une version antérieure de Laravel? Il y a eu des changements au test du navigateur de Laravel dans Laravel 5.4 https://laravel.com/docs/5.4/upgrade

Dans Laravel 5.5, vous pouvez essayer:

$response = $this->get('/'); 

$allCompanies = Company::all(); 
$response->assertViewHas('allCompanies', $allCompanies); 
+1

Ah j'ai essayé de déboguer 'get_class_methods ($ this)' mais vous l'avez gagné ... (Y) –

+0

Je suis en train de migrer depuis une version antérieure de Laravel. – Chris