我正在尝试对一个相当复杂的模型进行单元测试。不幸的是,我无法让它们落地,因为 Factory Girl 未能创建有效的工厂。我在控制台中收到此错误消息:
←[31mrspec ./spec/models/user_spec.rb:5←[0m ←[36m# User has a valid factory←[0m
但就是这样。工厂有22条线:
require 'faker'
FactoryGirl.define do
factory :user do |f|
f.name { Faker::Name.name }
f.username { Faker::Internet.user_name }
f.email { Faker::Internet.email }
f.password { Faker::Lorem.characters(char_count = rand(6..20)) }
f.password_confirmation { "#{password}" }
f.time_zone { Faker::Address.time_zone }
f.location_name { Faker::Address.city }
f.latitude { Faker::Address.latitude }
f.longitude { Faker::Address.longitude }
f.slug { "#{username}" }
f.hide_location { [true, false].sample }
f.ignore_bookclub_requests { [true, false].sample }
f.group_distance { rand * 100 }
f.remote_groups { [true, false].sample }
f.whuffie { rand * 100 }
end
end
但我不知道问题出在哪条线。尽管更有经验的程序员可能会指出这一点,但我更好奇如何自己解决这个问题和未来的问题。我怎样才能找出问题出在哪里?通常,Rails 擅长指向特定的代码行或代码块。有没有办法可以在这里提示它这样做?