我正在使用rails 5.0.1和minitest。我想写一个简单的测试来验证我的模型。模型文件是
public
和架构是
get
所以我在test / models / issue_test.rb写了我的测试
class Issue < ApplicationRecord
belongs_to :user
belongs_to :stop, foreign_key: "stop_onestop_id"
belongs_to :vehicle, required: false
belongs_to :line, foreign_key: "line_onestop_id"
validates :types, presence: true
end
但是当我进行测试时,它会以最壮观的方式崩溃。我无法弄清楚出了什么问题。这是输出
create_table "issues", force: :cascade do |t|
t.string "stop_onestop_id"
t.integer "vehicle_id"
t.text "description"
t.integer "user_id"
t.string "line_onestop_id"
t.string "types"
t.boolean "resolved"
t.datetime "created_at"
t.datetime "updated_at"
t.index ["stop_onestop_id"], name: "index_issues_on_stop_onestop_id"
t.index ["user_id"], name: "index_issues_on_user_id"
t.index ["vehicle_id"], name: "index_issues_on_vehicle_id"
end
编写单元测试的正确方法是什么?
答案 0 :(得分:1)
你的测试没有任何问题。
我怀疑你可能遇到了一个神奇的列名...当你对列使用type
(或类似的名字)时,Rails真的不喜欢它 - 因为这会重载内部使用的秘密隐藏变量Rails本身......
不幸的是,这个魔术列表在任何地方都没有记录。
尝试将该列重命名为其他内容,例如“种类”,并查看是否一切都开始神奇地工作......