【发布时间】:2018-08-09 19:03:15
【问题描述】:
我有一个关于应该在 Ruby on Rails 应用程序中测试控制器的哪些部分的问题。任何帮助将不胜感激。
当我创建需要验证的新模型(例如 validates :name, presence: true)时,我总是为这些模型编写测试。例如(如果模型名称是用户):
test "name should be present" do
assert_not User.new({ name: nil }).valid?
end
但是,我也有一个“与”模型“配套”的控制器(例如用户)。即使我已经在测试模型,我是否还应该测试控制器是否验证其参数?
例子:
test "invalid user should not be created" do
assert_no_difference "User.count" do
post random_models_path, store: { name: " " }
end
end
我肯定仍会测试 有效 商店 是否已创建,但我应该检查 无效 商店是否 没有创建?
谢谢
编辑
仅针对可能的无效案例之一测试控制器是否是个好主意,因为如果该案例成功,那么我知道模型验证可能正在工作?
【问题讨论】:
-
就个人而言,即使在模型中,我也看不出测试验证效果的意义。我所做的大部分工作是验证验证在那里。
it { is_expected.to validate_presence_of :name }。为什么要花精力重复 activerecord 的测试? -
我可以在 minitest 中而不是 rspec 中做同样的事情 (
it { is_expected.to validate_presence_of :name }) 吗? -
你可能可以,但我不知道怎么做。 :)
标签: ruby-on-rails ruby testing