在 rspec 中为 API 规范存根protect_from_forgery

Posted

技术标签:

【中文标题】在 rspec 中为 API 规范存根protect_from_forgery【英文标题】:Stubbing protect_from_forgery in rspec for API specs 【发布时间】:2016-05-10 08:47:34 【问题描述】:

我正在为我的 Rails 应用程序构建一个 api,并希望使用 protect_from_forgery 保护它免受 CSRF 攻击。我正在为ApiController 编写请求规范,并且想为请求中的 CSRF 无效时得到的响应编写规范。我的问题是如何存根 protect_from_forgery 的行为以模仿无效的 CSRF 令牌?

【问题讨论】:

【参考方案1】:
allow(ApiController).to receive(:protect_from_forgery).and_return(false)

【讨论】:

以上是关于在 rspec 中为 API 规范存根protect_from_forgery的主要内容,如果未能解决你的问题,请参考以下文章

请求规范中的存根身份验证

使用Rspec存根和模拟在Rails Oauth中实现100%的测试覆盖率

rspec 3 - 存根类方法

无法使用 rspec 存根辅助方法

如何在RSpec中存根?

Rspec 模拟和存根与期望混淆