У меня есть следующий ROR RSpec тест:Понимание ActiveRecord :: Отношения с примером RSpec
Имейте в виду, что тест не пройдет, как в приведенном ниже коде. Метод правильно определен и делает то, что предназначено. Вопрос в том, почему, когда я изменяю и удаляю [] вокруг @public_topic во втором примере, тест терпит неудачу?
describe "scopes" do
before do
@public_topic = Topic.create!(name: RandomData.random_sentence, description: RandomData.random_paragraph)
@private_topic = Topic.create!(name: RandomData.random_sentence, description: RandomData.random_paragraph, public: false)
end
describe "visible_to(user)" do
it "returns all topics if user is present" do
user = User.new
expect(Topic.visible_to(user)).to eq(Topic.all)
end
it "returns only public topics if user is nil" do
expect(Topic.visible_to(nil)).to eq([@public_topic])
end
end
end
обновление
scope :visible_to, -> { where(public: true) }
Каков ваш 'метод visible_to' должен вернуться. Из вашего теста кажется, что он должен возвращать массив с чем-то в нем. Следовательно, когда вы вынимаете '[]', возвращая объект, он терпит неудачу. –