我试图在Rails 4 beta1的“minitest”测试中使用“food_descriptions”夹具:
butter:
NDB_No: "01001"
FdGrp_Cd: "0100"
Long_Desc: "Butter, salted"
我的测试是:
it "must work" do
food_descriptions(:butter).NDB_No.must_equal "01001"
end
然而,当我运行测试时,我收到此错误:预期:“01001”实际:1001 我不明白为什么这个号码不被识别为字符串。我已经读过yml将以0开头的值视为八进制值,因此添加引号应足以将其视为字符串但不起作用。我也尝试过管道“|”签署,但也不起作用。 知道为什么吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
事实证明问题不是我想象的那样(yml)。问题是夹具被推送到DB并且测试实际上是从数据库中检索条目(我认为夹具只是在内存中),并且该值的数据库列类型是整数,而不是字符串,因此领先的零被删除。我真正的问题是我希望该列成为字符串类型表的主键,我没有意识到我创建的迁移没有将列的类型更改为测试数据库中的字符串。