1
私の機能テストでは、Codeceptionを使用してUnauthorizedExceptionを傍受しようとしています。まあ、実際には、私の機能テストは、授業で引き起こされたLaravelテストです。だから、私は2つの方法を試みた:Laravel 5/Codeceptionで未承認の例外がキャッチされていません
/** @test
*
* @expectedException UnauthorizedException
*/
public function test_exception()
{
$this->visit("/associations/1/edit")
}
それとも私のコントローラで
/** @test
*
*/
public function test_exception()
{
\PHPUnit_Framework_TestCase::setExpectedException(UnauthorizedException::class);
$this->visit("/associations/1/edit")
}
を、私はテストにそれをトロウ:どちらの場合も
throw new UnauthorizedException();
、それだけで言う:
Failed asserting that exception of type "UnauthorizedException" is thrown.
すべては問題なく表示されますが、どんなアイデアなの????
EDIT:コントローラ
public function edit($id)
{
$association = Association::findOrFail($id);
$federation = $association->federation;
if (Auth::user()->cannot('edit', $association)) { // I have checked with dd() my test goes here.
throw new UnauthorizedException();
}
$users = User::all();
$federations = Federation::all();
return view('associations.form', compact('association', 'users', 'federations', 'federation'));
}
名前空間を試しましたか? '\ Illuminate \ Contracts \ Validation \ UnauthorizedException' –
私は以下を使用します:Illuminate \ Contracts \ Validation \ UnauthorizedExceptionを使用します。それは同じことではありませんか? –
はい、そうです。完全なコントローラメソッド –