title: Determine what error assert_not clause passes with in a Rails 4 test?
body: <p>I test if my object fails validation using <code>assert_not</code>, so it actually passes on failed validations. However, I want to know which validations it fails on specifically. </p>
  
  <p><strong>Essentially, how do I make sure that my object at least fails <code>validates_acceptance_of :terms</code> in my case?</strong></p>
  
  <pre><code>class StaffTest &lt; ActiveSupport::TestCase
    context "Save staff and validate" do
      setup do
        @staff = Fabricate.build(:staff)
        @new_staff = Staff.new
      end
  
      teardown do 
        @staff = nil
        @new_staff = nil
      end
  
      should "fail if save without accepting terms" do
        @staff.validate_terms = true
        assert_not @staff.valid?, @staff.errors.full_messages.inspect
      end
    end
  end
  </code></pre>
  
  <p>Supposedly, I want my test to pass because it fails password validation. In reality, however, it did pass, but it passed because it failed on terms acceptance validation. In this case, my test did not serve it purpose. Therefore, I want to make sure that the test passes on the correct failure.</p>
  
  <p>I am using Rails 4, Shoulda and ActiveSupport::TestCase (Minitest)</p>