2016-07-09 23 views
12

私はフレームワークの初心者ですlaravel 5.2Laravel - テストの仕組みを理解してください

単体テストの仕組みを理解したいと思います。私はこのテストを行った:

public function testPageLogin() 
{ 
    $this->visit('/login') 
    ->see('Connexion'); 
} 

私はスクリプトを実行する:すべては問題ありません。

$this->visit('/login') 
    ->type('[email protected]', 'email') 
    ->type('toto', 'password') 
    ->check('souvenir') 
    ->press('Connexion') 
    ->seePageIs('/login'); 

フィールドのメール '、「パスワード」、「お土産」のhtmlページに存在するもちろん:

は、その後、私はこのテストを行いました。これらの値では、DBには知られていないため、「ログイン」ページが表示されなければなりません。

私はスクリプトを実行すると、私は失敗に

を照らし\契約\コンテナ\ BindingResolutionException持っている:ターゲット[照らしなさい\デバッグ\ exceptionHandlerの\共同 ntracts]がインスタンス化ではありませんが。 Cで:\ WAMP \ WWW \ laravelの\枠組み\エコール\ベンダー \ SRC \を照らし\コンテナ\ Container.phpライン上の748

確かに、私はどこか間違って何かをする必要がありますが、私はどこに表示されません。どんな助けもありがとう。メルシ。 PHPUnitの新しいバージョンを使用している場合

ドミニク

+0

私はまだ問題があります。私の質問は十分ではなかったのでしょうか?それは私に警告することをためらうことはありません。ありがとう。 – Dom

+0

'vendor/bin/phpunit --version'は何を出力しますか? – mpen

答えて

3

これはLaravel内の既知のバグです。私はまだこのバグは修正されていないと考えています。一方

https://github.com/laravel/framework/issues/10808

、以下のいくつかの回避策があります。

1)グローバルなPHPUnitを使用する代わりに、*project*/vendor/bin/phpunitを使用してください。

2)PHPUnitのバージョンをダウングレードして、Laravelと互換性があるようにしてください。以下のコマンドを実行してください。

composer global remove phpunit/phpunit 
composer global require 'phpunit/phpunit=~4.0' 

これが役に立ちます。

+0

情報ありがとうございます。私はphpunit 4.0を削除してインストールしようとしましたが、問題があります。それは常に起動される4.8です。私は窓で作業し、私のテストを起動するのが好きです:PHPベンダー/ phpunit/phpunit/phpunit tests/TestAuthentification.php – Dom

+0

@ user2672338申し訳ありませんが、私はWindowsにはいつかは分かりません。これが役立つかどうかわからないhttp://dustyreagan.com/downgrade-phpunit-3-6-to-3-5-15/#comment-2817 – JayIsTooCommon

+0

Composerには、より低いバージョンのパッケージにダウングレードする際に問題があります。最初に 'composer.json'の' phpunit'バージョンを手動でchanし、 'vendor /'ディレクトリと 'composer.lock'を削除してから、' composer install'を実行してください。 – Skysplit

関連する問題