我怎么能测试条件验证?

use*_*052 1 ruby validation rspec ruby-on-rails ruby-on-rails-3

我正在使用Ruby on Rails 3.0.9和RSpec 2.我想知道我应该如何运行以下验证mathod的测试:

class User < ActiveRecord::Base
  validates :firstname, :unless => :condition,
    :presence => true,
    ...
end
Run Code Online (Sandbox Code Playgroud)

我的意思是那:unless => :condition部分.

jak*_*ake 9

我假设您一直在Active Model上使用shoulda匹配器来测试此类验证.

在这种情况下,您可以通过在"断言"之前使用"subject"块来控制测试验证的实例:(对于:除非情况)

context "testing validations" do
  subject do
    #Create object satisfying :condition
  end
  should_not validate_presence_of :first name
end
Run Code Online (Sandbox Code Playgroud)

以及上述的对象案例.