如何测试枚举验证?

时间:2015-12-29 16:33:37

标签: ruby-on-rails unit-testing ruby-on-rails-4

我有一个具有一组特定答案选项的变量。在我的模型中,我有:

validates :article_type,  presence: true
enum article_type:        [ :type1, :type2, :type3 ]

我有以下模型测试:

test "type test" do
  assert @article.valid?
  @article.article_type= "type1"
  assert @article.valid?
  @article.article_type= "type5"
  assert_not @article.valid?
end

错误:@article.article_type= "type5"生成错误: ArgumentError: 'type5' is not a valid article_type

对于包含无效数据的所有其他类型的验证,然后使用assert_not这些类型的测试工作。在这种情况下为什么不呢?我该如何重写这个模型测试?

1 个答案:

答案 0 :(得分:2)

以下是Rails团队的解释:https://github.com/rails/rails/issues/13971

如果您想测试哪些无效值被拒绝,请使用assert_raises预期ArgumentError