应该是validate_format_of.not_with在框架中有问题(或在我的理解中)

use*_*623 6 ruby rspec shoulda ruby-on-rails-3

我将以下代码放入RSpec测试中:

it { should validate_format_of(:email).not_with('test@test')}
Run Code Online (Sandbox Code Playgroud)

并设置实际的类:

validates :email, :presence => true, :format => /\b[A-Z0-9._%-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}\b/i
Run Code Online (Sandbox Code Playgroud)

当我运行测试时,我得到:

失败:1)用户失败/错误:它{should validate_format_of(:email).not_with('test @ test')}当电子邮件设置为"test @ test"时,预期错误包括"不能为空"错误:["名称不能为空(nil)","电子邮件无效(\"test @ test \")"]#./ spec/model/user_spec.rb:8:in`block(2级)在''

当我做一个通过测试时:

it { should validate_format_of(:email).with('adam@trimediatlantic.com')}
Run Code Online (Sandbox Code Playgroud)

一切都按预期工作.有人可以告诉我,如果我做错了或者这是一个框架问题.谢谢.

zet*_*tic 21

试试这个:

it { should_not allow_value("test@test").for(:email) }
Run Code Online (Sandbox Code Playgroud)