【问题标题】:Rails cancan(can) not recognizing data in test databaseRails cancan(can)无法识别测试数据库中的数据
【发布时间】:2016-02-15 22:58:31
【问题描述】:
我有一个彻底的ability.rb 定义,它工作正常。但是,当我编写向端点发送请求的控制器规范时,cancan(can) 反复返回 403。
在我的ability.rb 中用于处理我正在测试的端点的相应部分中,当输出{Model}.all.to_json 时,它输出的是一个空数组。
如何解决此问题,以便它识别我的测试数据库中的数据,或更改我的测试以绕过此问题?
【问题讨论】:
标签:
ruby-on-rails
cancan
cancancan
【解决方案1】:
每次迭代都会重置测试数据库中的数据。如果您想使用某些特定状态(例如数据),则必须在测试中重新创建该状态。
根据测试框架,在执行测试之前,使用before 或setup 挂钩在测试套件中创建您需要的数据。
【解决方案2】:
在仔细检查了我的代码之后,我意识到我没有通过固定装置创建的一点数据没有通过验证,因此没有被创建。
我的测试环境设置正确,但我没有create! 调用,而是create,导致验证错误不明确。