Forum: Ruby on Rails assert_valid in unit tests after upgrade to rails 2.3 doesn't work

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Constantin G. (Guest)
on 2009-04-07 10:35
(Received via mailing list)
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
Mohamed A. (Guest)
on 2009-04-14 16:53
(Received via mailing list)
Having the same problem here. But still didn't find any solution.



On Apr 7, 11:34 am, Constantin G.
Tonypm (Guest)
on 2009-05-29 17:53
(Received via mailing list)
hi,

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

Tonypm
Tonypm (Guest)
on 2009-05-29 18:41
(Received via mailing list)
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
This topic is locked and can not be replied to.