Assert_valid in unit tests after upgrade to rails 2.3 doesn't work


def test_valid
assert_valid State.first

NoMethodError: undefined method `assert_valid’ for #<StateTest:

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


Having the same problem here. But still didn’t find any solution.

On Apr 7, 11:34 am, Constantin G.



just upgrading to 2.3.2 and getting same, did you resolve this at all?



Ok, so

Rails Guide
para 3.5 says it exists - I guess the guide needs amending?

It was deprecated at 2.2.2

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")