私はLarabook series at Laracastsを通過しましたが、私の問題の解決策を見つけることができないようです。私のコードは、ブラウザで完璧に機能していますが、ユーザーがログインしていないので、私の機能テストが失敗している。これはSignUpTestあり、問題はそれがログインしていないということです $I->assertTrue(Auth::check());
Larabookテストエラー - ユーザーをログインできません
$I = new FunctionalTester($scenario);
$I->am('guest');
$I->wantTo('sign up for a Larabook account');
$I->amOnPage('/');
$I->click('Sign Up!');
$I->seeCurrentUrlEquals('/register');
$I->fillfield('Username:', 'JohnDoe');
$I->fillfield('Email:', '[email protected]');
$I->fillfield('Password:', 'demo');
$I->fillfield('Password Confirmation:', 'demo');
$I->click('Sign Up');
$I->seeCurrentUrlEquals('');
$I->see('Welcome to Larabook');
$I->seeRecord('users', [
'username' => 'JohnDoe'
]);
$I->assertTrue(Auth::check());
最後のビットまでが合格しますユーザーAuth::check()
はfalseを返します。私はJefferyの手紙を手紙にたどり、それがなぜ機能していないのか理解できません。
SignInCeptのために、私は同じ問題を持っている
$I = new FunctionalTester($scenario);
$I->am('a larabook member');
$I->wantTo('login to my larabook account');
$I->signIn();
$I->seeInCurrentUrl('/statuses');
$I->see('Post a status');
$I->assertTrue(Auth::check());
サインイン方法
public function signIn()
{
$email = '[email protected]';
$username = 'Foobar';
$password = 'foo';
$this->haveAnAccount(compact('email', 'username', 'password'));
$I = $this->getModule('Laravel4');
$I->amOnPage('/login');
$I->fillField('email', $email);
$I->fillField('password', $password);
$I->click('Sign In');
}
再び、それは、資格情報を取り込んでも、状況に行くのでテストがいるassertTrueで失敗しますurlしかし、何らかの形でユーザーはまだログインしていません。
signInメソッドを呼び出すと、すべての機能テストが失敗します。誰もがなぜログインしていないのか教えてもらえますか?
'Auth :: check()'はあなたがここで呼び出すべき方法ですか?私はLaravelと一緒に働いたことがないので、間違っているかもしれませんが、現在のアプリのコンテキスト内で、authを確認する一般的な方法のようです。この場合、テストしているenvではなく、テストを実行するenvになります。私はテストされたenvがカプセル化され、分離されると期待します。それが他のフレームワークでどのように動作するかがその方法です。 – michaJlS
これはチュートリアルで使用されているものですが、認証されたユーザーの$ I-> seeAuthentication();を調べるlaravel4モジュールテストメソッドも使用しましたが、認証されたユーザーがいないというエラーもスローされます。私の問題は、ユーザーがログインしていないことです。 –