我正在尝试在相当复杂的模型上进行单元测试。不幸的是,由于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很适合指向特定的代码行或代码块。有没有办法在这里提示它这样做?