I’m probably missing some basic Ruby syntax, but I’m relatively new to
Ruby and can’t figure this out from the various references I’ve looked
at
I’d like to use this nifty test helper:
Calls creation_method with nil values for field_names and asserts
that
the resulting object was not saved and that errors were added for
that field.
assert_required_fields :create_article, :subject, :body, :author
def assert_required_fields(creation_method, *field_names)
field_names.each do |field|
record = send(creation_method, field => nil)
assert_equal false, record.valid?
assert_not_nil record.errors.on(field)
end
end
However, I don’t know how to pass the creation method. My basic test
would be:
def test_should_create_user
user = User.create(:email => “[email protected]”, :lastname => “jones”,
:password => “secret”);
assert user.valid?, “User was invalid:\n#{user.to_yaml}”
end
I tried this for the failure case…
def test_should_not_create_user_unless_default_fields
assert_required_fields User::create, :email, :lastname, :password
end
But that reports an error:
- Error:
test_should_not_create_user_unless_default_fields(UserTest):
TypeError: #<User uuid: nil, firstname: nil, lastname: nil, login: nil,
email: nil, …> is not a symbol
Can someone advise me of the correct syntax?
Thanks,
Sarah