En tant que Les documents de spécification du contrôleur RSpec indiquent :
Une spécification de contrôleur est une enveloppe RSpec pour une spécification R ( ActionController::TestCase::Behavior
).
Ainsi, en regardant la documentation du code de l'application ActionController::TestCase::Behavior
, dans le cadre de la Section des variables d'instance spéciales , on constate que ActionController::TestCase
fournira automatiquement a @response
variable d'instance ( lisible comme un simple response
dans le test ), qui est "un ActionDispatch::TestResponse
représentant la réponse de la dernière réponse HTTP". Cela semble donc expliquer pourquoi il existe un objet response
peut être consulté sans avoir besoin d'une demande explicite dans la spécification d'un contrôleur, mais pourquoi le statut de l'élément est 200
?
Bien, ActionDispatch::TestResponse
hérite de ActionDispatch::Response
qui lorsqu'il est initialisé, fournit 200
comme statut par défaut . Vous pouvez même tester cela dans votre console de rails :
> ActionDispatch::TestResponse.new
=> #<ActionDispatch::TestResponse:0x007fc449789b68
@blank=false,
@cache_control={},
@charset=nil,
@committed=false,
@content_type=nil,
@cv=
#<MonitorMixin::ConditionVariable:0x007fc449789848
@cond=#<Thread::ConditionVariable:0x007fc449789820>,
@monitor=#<ActionDispatch::TestResponse:0x007fc449789b68 ...>>,
@etag=nil,
@header={"X-Frame-Options"=>"SAMEORIGIN", "X-XSS-Protection"=>"1; mode=block", "X-Content-Type-Options"=>"nosniff"},
@mon_count=0,
@mon_mutex=#<Thread::Mutex:0x007fc449789a50>,
@mon_owner=nil,
@sending=false,
@sending_file=false,
@sent=false,
@status=200, # <<< Here's your default status.
@stream=#<ActionDispatch::Response::Buffer:0x007fc449789938 @buf=[], @closed=false, @response=#<ActionDispatch::TestResponse:0x007fc449789b68 ...>>>
J'espère donc que cette plongée en profondeur vous a aidé à mieux comprendre le système d'information de la Commission européenne. response
dans les spécifications du contrôleur RSpec, comme cela a été le cas pour moi.