मैं हर बार FactoryGirl.build(:user)
को उपयोगकर्ता बनाना चाहता हूं और इसलिए मैंने इन पंक्तियों को जोड़ा:'method_missing': 'build` एक उदाहरण समूह (उदाहरण के लिए' वर्णन 'या' संदर्भ 'ब्लॉक) पर उपलब्ध नहीं है
RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods
end
spec_helper.rb
पर। लेकिन यह निम्न त्रुटि बनाता है:
`method_missing': `build` is not available on an example group (e.g. a `describe` or `context` block). It is only available from within individual examples (e.g. `it` blocks) or from constructs that run in the scope of an example (e.g. `before`, `let`, etc). (RSpec::Core::ExampleGroup::WrongScopeError)
फिर मैंने सभी संदर्भ/ब्लॉक ब्लॉक को हटा दिया, लेकिन इससे कुछ भी नहीं बदला। क्या आप में से कोई भी इस के साथ एक ही समस्या है और मैं इसे कैसे ठीक कर सकता हूं?
वर्तमान में मेरे परीक्षण इसलिए की तरह लग रहे:
require 'rails_helper'
RSpec.describe User, type: :model do
user = build(:user)
project = build(:project)
it "is valid with a firstname, lastname, email and password" do
expect(user).to be_valid
end
it "is invalid without a firstname" do
user = build(:user, name: nil)
expect(user.valid?).to be_falsey
expect(user.errors[:name].size).to eq(1)
end
it "is invalid without a lastname" do
user = build(:user, surname: nil)
expect(user.valid?).to be_falsey
expect(user.errors[:surname].size).to eq(1)
end
it "destroys dependent projects" do
user = User.create!(name: 'john', surname: 'doe', email: '[email protected]', password: 'password', password_confirmation: 'password')
user.projects << project
expect{user.destroy}.to change {Project.count}.by(-1)
end
end