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

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

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

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

hi,

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

Tonypm

Ok, so

Rails Guide Testing Rails Applications — Ruby on Rails Guides
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”)
end

Tonypm