В Java потребовалось бы больше памяти. В C++ это не взяло бы памяти, чем необходимый для константы того же типа (это оценено во время компиляции и не имеет никакого остаточного значения во времени выполнения). В C++ это означает, что тип по умолчанию для перечисления займет то же место как интервал
Вы не упоминаете, какую среду тестирования вы используете. У многих есть макросы, которые делают тестирование activerecord простым.
Вот "долгий путь", чтобы сделать это без использования каких-либо помощников тестирования:
thing = Thing.new :param1 => "Something", :param2 => 123
assert !thing.valid?
assert_match /blank/, thing.errors.on(:name)
Вы можете попробовать rspec-on-rails-matchers . Предоставляет вам синтаксис вида:
@thing.should validates_presence_of(:name)