【发布时间】:2015-03-15 16:56:16
【问题描述】:
在将 shoulda-matchers gem 从 v1.4.2 更新到 v2.7.0 后,我遇到了问题,并且失败取决于我运行测试的方式。当我“正常”运行当前的测试套件时,我会遇到这样的失败:
失败/错误:它{应该 validate_presence_of :attribute1}
当primary_first_name设置为nil时,预期的错误包括“不能为空”,得到错误:[“不能为空(属性:\”属性2\”,值:无)”,“不能为空(属性:\"attribute3\",值:nil)"]
发生这种情况时,我尝试设置 Spring,然后设置 Zeus 来加快测试速度(我们使用的是 Spring Rails 3.2.18 之前的版本),这两者都改变了错误输出。上述形式的错误消失了,但这种形式取代了它:
失败/错误:它 {should validate_presence_of :attribute}
无方法错误: #RSpec::ExampleGroups::(Model instance)> 的未定义方法 `validate_presence_of'>(删除左尖括号以使其显示在此处)
我还发现一堆其他测试开始失败,出现这种错误:
失败/错误:它 {should have_db_column :column_name} 预期 # 响应
has_db_column?
我找到了一个报告discussing后一个问题,但是好像是shous-matchers/Spring冲突,所以我不知道为什么宙斯会导致同样的问题。
我不知道第一个问题是潜在的还是加剧了第二个问题。这三个 gem 对我来说都是新的(我正在处理遗留代码),所以我的后备修复将是摆脱 shoulda-matchers (我更新它作为对它似乎引起的另一个问题的响应)并重写依赖它的测试。有没有更温和的选择?
【问题讨论】:
标签: ruby ruby-on-rails-3 shoulda