Тест Rspec сериализованных данных Rails ActiveRecord - PullRequest
3 голосов
/ 23 февраля 2012

Я бы хотел использовать rspec для проверки правильности сериализованного хэша, но я не совсем уверен, как это сделать. Есть ли способ проверить, что хеш имеет определенные ключи и значения?

foo.rb

class Foo < ActiveRecord::Base
  attr_accessor :bar
  serialize :bar

end

foo_spec.rb:

require 'spec_helper'

describe Route do
  before { @foo = Foo.new(bar: { a: 1, b: 2, c: 3 }) }

  subject { @foo }

  it { should #????? }
end

1 Ответ

3 голосов
/ 23 февраля 2012

Чтобы убедиться, что сериализация действительно работает, вам нужно create записать, а не просто инициализировать ее с new (т.е. сохранить ее в вашей базе данных, которая затем будет сохранять ее как YAML). Затем вы можете прочитать его обратно (используя reload, чтобы убедиться, что он на самом деле получает сериализованную версию базы данных):

it "deserializes the hash" do
  @foo.reload.bar.should eq({a: 1, b:2, c: 3})
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...