J'ai le test ROR RSpec suivant:Comprendre ActiveRecord :: Relations avec RSpec exemple
Gardez à l'esprit que le test ne passe tout comme dans le code ci-dessous. La méthode est correctement définie et fait ce qui est prévu. La question est pourquoi quand je modifie et enlève le [] autour du @public_topic dans le deuxième exemple le test échoue?
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
mise à jour
scope :visible_to, -> { where(public: true) }
Quelle est votre méthode 'visible_to' censé revenir. A partir de votre test, il semble qu'il soit supposé retourner un tableau avec quelque chose dedans. Par conséquent, lorsque vous supprimez le '[]', renvoyant un objet, il échoue. –