2016-03-21 3 views
1

sagen, ich habe die folgende CanCan FähigkeitenGibt es Vorteile, Unbefugter-durch-Cancan-Aktionen auf der Controller-Ebene zu testen, oder ist das überflüssig?

can :index, Project 
cannot :show, Project 

und eine ability_spec

it { is_expected.to have_abilities([:index], Project } 
it { is_expected.to not_have_abilities([:show], Project } 

definiert sind es Situationen, in denen es vorteilhaft ist, die nicht autorisierte Aktion auf Controller-Ebene zu testen, oder ist dies überflüssig?

Antwort

1

Ich würde sagen, dass nur Ihre Fähigkeit Konfiguration Spezifikationen gut ist, da dies die Geschäftslogik Ihrer App ausübt. Die Funktionalität, einen CanCan::AccessDenied Fehler auszulösen, wenn eine Fähigkeit nicht berechtigt ist, eine Aktion auszuführen, ist specced in the CanCan library itself.

Wenn Sie Ihre eigenen benutzerdefinierten Fehlerklassen hatten, die Sie verwendet haben, als der Zugriff verweigert wird, dann denke ich, der Fall könnte wahrscheinlich die Art von Controller-Spezifikationen schreiben gemacht werden, die Sie erwähnt haben.

+1

danke für die Bestätigung dieser @paul. Wird helfen, eine aufgeblähte Controller-Test-Suite zu straffen! –

Verwandte Themen