テストの書き方を学んでいるので、書いた小さなメソッド用に書いています。このメソッド を呼び出したいのですが、オブジェクトupdate_user_region_id
の変更を予期しているはずです。user
def update_user_region_id(user_id, region_id)
user = User.where(id: user_id).first
region = Region.where(id: region_id).first
return if user.nil?
user.region_id = region_id
user.region = region.name
user.save!
end
update_user_region_id
別のメソッドから呼び出されたメソッドです (これが関連しているかどうかはわかりません)。
私のテストのために、私は書いた:
it 'should update user region id' do
user = Factory :user
city = Factory :city
expect{
update_user_region_id(user.id, city.id)
}.to change(user, :region_id)
end
次のエラーが発生し続けます。
undefined method `update_user_region_id' for #<RSpec::Core::ExampleGroup::Nested_1:0x007f9e0a57f490>
1. これは良いテストですか?
2. このテストを修正するにはどうすればよいですか?
ありがとう。