相关疑难解决方法(0)

RSPEC和工厂女孩SystemStackError:堆栈级别太深

我试图解决我的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)

factory rspec ruby-on-rails factory-bot

11
推荐指数
1
解决办法
7266
查看次数

工厂女孩和has_one

这是我的模特:

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)

因为我的视频中有一个观察者试图从视频对象访问试听

我尝试了几件事情,但总是以堆叠水平太深或试镜为零结束.

你有好主意吗 ?

谢谢,迈克

ruby-on-rails factory-bot

6
推荐指数
1
解决办法
4510
查看次数

标签 统计

factory-bot ×2

ruby-on-rails ×2

factory ×1

rspec ×1