def test_valid assert_valid State.first end Error: test_valid(StateTest): NoMethodError: undefined method `assert_valid' for #<StateTest: 0x7f0d60750318> I see that test_valid is now in ActionController::Assertions::ModelAssertions. Does this mean that test_valid is designed to be used i ActionController tests only? I can change my assert_valid(State.first) into assert (State.first.valid?) but assert_valid prints meaninful failure messages, unlike assert which just tells me "nil is not true". How can I use assert_valid in my unit tests? My test classes declared something like this: class StateTest < ActiveSupport::TestCase
on 2009-04-07 10:35
on 2009-04-14 16:53
Having the same problem here. But still didn't find any solution. On Apr 7, 11:34 am, Constantin G.
on 2009-05-29 17:53
hi, just upgrading to 2.3.2 and getting same, did you resolve this at all? Tonypm
on 2009-05-29 18:41
Ok, so Rails Guide http://guides.rubyonrails.org/testing.html para 3.5 says it exists - I guess the guide needs amending? It was deprecated at 2.2.2 - "assert_valid is deprecated. Use assert record.valid? instead" see http://github.com/rails/rails/commit/d4754677a34d3... and https://rails.lighthouseapp.com/projects/8994/tick... I didnt want to go change all my tests just at the moment, so putting assert_valid in my test_helper gets me over that for the moment. Bit of a time waster, since I was going from 2.0.2 to 2.3 so had not seen the dep error. def assert_valid(record) assert record.valid?, record.errors.full_messages.join("\n") end Tonypm