我试图解决我的Spec测试的问题,我得到以下错误失败:
1) SessionsController POST 'create' with valid email and password should sign in the user
Failure/Error: Unable to find matching line from backtrace
SystemStackError:
stack level too deep
# /Users/Aurelien/.rvm/gems/ruby-1.9.2-p290@rails3/gems/activerecord-3.1.0/lib/active_record/connection_adapters/abstract/connection_specification.rb:103
Finished in 37.77 seconds
9 examples, 1 failure
Failed examples:
rspec ./spec/controllers/sessions_controller_spec.rb:35 # SessionsController POST 'create' with valid email and password should sign in the user
Run Code Online (Sandbox Code Playgroud)
在此之前,我与工厂的关联存在问题.
Factory.define :role do |role|
role.name "Registered"
role.association :user, :factory => :user
end
Factory.define :admin do |role|
role.name "Admin"
role.association :user, :factory => :user …
Run Code Online (Sandbox Code Playgroud) 这是我的模特:
Class Audition
belongs_to :video
end
Class Video
has_one :audition
end
Run Code Online (Sandbox Code Playgroud)
和我的工厂:
Factory.define :video do |v|
v.filename {Sham.filename}
v.video_url {Sham.url}
end
Factory.define :audition do |a|
a.video {|a| a.association(:video)}
a.label {Sham.label}
end
Run Code Online (Sandbox Code Playgroud)
我怎么能创建一个有试镜的视频工厂,
我的意思是,能够:
v = Factory.create(:video)
v.audition # I'd like this to be not nil !
Run Code Online (Sandbox Code Playgroud)
因为我的视频中有一个观察者试图从视频对象访问试听
我尝试了几件事情,但总是以堆叠水平太深或试镜为零结束.
你有好主意吗 ?
谢谢,迈克