9월, 2016의 게시물 표시

Rails에서 트랜잭션 안에 HTTP 리퀘스트 있는 경우 명시적 롤백 처리

레일즈 롤백 Rails에서 강제로 transaction rollback 하기 HTTP 요청이 transaction 안에 포함되어 HTTP 요청 실패시 DB를 rollback 할 경우에는 명시적으로 rollback 해줘야 함! def rollback_test transaction do    begin      self.name = '테스트'     self.status = 'success'     self.save!        # HTTP 요청     http_request_test.update!    rescue      # 명시적 Rollback     raise ActiveRecord::Rollback    end end end

Rake RSpec Sample

루비 rake rspec Rails에서 simplecov 이용해서 coverage 추가할 때 샘플 코드 rake_require 호출하는 부분을 전체를 커버하는 before에서 한 번만 호출해야 coverage 정상적으로 적용됨 rake_require를 여러번 호출하거나 scope 다르게 해서 호출할 경우 기존 coverage 정보 갱신되서 마지막으로 적용된 coverage만 표시됨 test.rake require 'wheel/task_context'   namespace :foo do    desc "bake some bars"   task bake_a_problematic_bar: :environment do      puts '*' * 60     puts ' Step back: baking in action!'     puts '*' * 60        puts '*' * 60     puts ' All done. Thank you for your patience.'     puts '*' * 60    end end test_rake_spec require 'support/shared_context' require 'rails_helper' require 'rake'   describe 'foo namespace rake task' do    describe 'foo:bake_a_problematic_bar' do        before do        # load File.expand_path("../../../lib/tasks/test.rake", __FILE__)       # Rake::Task.define_task(:environment)          Rake.appli