У меня есть маленький средний посуда, для которых я хотел бы написать тест для .. Я хотел бы сделать два теста:UnitTest промежуточного слоя в Larave5
- Mock role_id с 1; ручка должна возвращаться TRUE
- Mock role_id с 2; ручка должна возвращаться FALSE
Как это можно сделать?
namespace App\Http\Middleware;
use Closure;
use Auth;
use Redirect;
class RedirectIfNotAdminUser {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next) {
if (Auth::user()->role_id != config('Roles.admin')) {
return Redirect::action('Auth\[email protected]');
}
return $next($request);
}
}
На данный момент тест, который я бегу следующим образом:
public function testIsAdminUser() {
$user = factory(App\User::class)->make(['role_id' => '1']);
$this->be($user);
$response = $this->action('GET', 'admin\[email protected]');
$this->assertEquals(200, $response->getStatusCode());
}
Я также должен был добавить строку в настройках, без него $ this-> быть() не работает
public function setUp() {
$this->refreshApplication();
}
Действительно ли это лучший способ проведения теста?
привет. спасибо за ответ. Я играл вокруг и имел небольшие проблемы с $ this-> actAs и насмешкой $ next из-за его закрытия, поэтому я придумал немного другой тест, который можно увидеть в главной угрозе. – user3402600