2015-03-31 29 views
5

Ben özel bir kimlik doğrulama paketi (Sentinel by Cartalyst) ile kombinasyon halinde bir OAuth2-Server (oauth2-server-laravel) uygulanmaktadır. Benim routes.php olarakgeçici olarak devre dışı/Bypass Ara Katman

:

Route::group(['before' => 'oauth'], function() 
{ 
    // ... some routes here 
} 

Yani istek bir yetkilendirme üstbilgi veya uygulamayı sağlamalıdır bir OAuthException vererek çıkar.

Şimdi benim denetleyicileri UnitTest istiyorum. Bu yüzden veritabanımı bir OAuth oturumu ve her test için erişim belirteci ile tohumlamam gerekiyor. Ardından, -TestCase numaralı metnin üzerine yazın ve HTTP-Authorization Header'ı Bearer Token ile ayarlayın.

(sadece birim test için benim durumumda) bir devre dışı bırakmak için bir yol ya da baypas katman var mı?

laravel 4 onlar rota filtreleri çağrıldı ve onlar zaten test ortamında devre dışı bırakıldı. Ayrıca bunları Route::enableFilters() ile manuel olarak etkinleştirebilir/devre dışı bırakabilirsiniz. Ben ile gelebilir

+0

ben de bunun cevabını bilmek istiyorum benim okuma şimdiye kadar laravel 5'de olduğu rota filtreleri laravel 4'te test modunda devre dışı bırakılan yol Ancak keskin olduğum ortakatmanını devre dışı bırakmak mümkün olmadığıdır yanlış olduğu kanıtlanmak. – delatbabel

cevap

5

Görünüşe laravel sürümü ile 5.1 dün disableMiddleware() yöntem şimdi tam olarak ne istediğini yapar, hangi TestCase sınıfına eklendi.

Sorun çözüldü. :)

+1

Bu yüzden test durum sınıfınızda – surfer190

+0

test kodunuzu kullanın. Bu konudaki bir iyileştirme, belirli bir orta sınıf kümesini devre dışı bırakmaya izin veren çerçeveye birleştirilmiştir. https://github.com/laravel/framework/pull/18673 adresine bakın. – meysam

2

tek cevap fiili katman kendi içinde bir baypas koymak oldu. Örneğin:

public function handle($request, Closure $next) 
{ 
    // Don't validate authentication when testing. 
    if (env('APP_ENV') === 'testing') { 
     return $next($request); 
    } 
    // ... continue on to process the request 
} 

ben app çevreye katman bağımlı yapma fikrini sevmiyorum ama diğer seçenekleri göremiyordu.

İlgili konular