ruby on rails - Mock Sequel connections to Oracle database -
i'm trying test rails application connects remote oracle database using sequel gem. since user needs logged in in order use site, i'm using webmock. however, because webmock stops requests outside sources, error sequel::databaseconnectionerror: ocierror: ora-12541: tns:no listener every time run tests. how mock database connection? should try else instead?
i'm not sure code provide, here snippets may relate possible solutions:
database_connection.rb:
class databaseconnection @@db = nil def self.get_db @@db ||= sequel.connect(settings.db.main.to_hash) end def self.db_query(query) get_db[query] end end in spec_helper.rb:
require 'webmock/rspec' webmock.disable_net_connect!(allow_localhost: true) rspec.configure |config| config.before(:each) stub_request(:post, "/path/to/third/party"). with(:body => "request body"). to_return(:status => 200, :body => "", :headers => {}) end # ... rest of code end relevant gems gemfile:
gem 'rails', '4.0.2' gem 'ruby-oci8', git: 'https://github.com/kubo/ruby-oci8.git' group :development, :test gem 'rspec-rails', '~> 3.2.0' end group :test gem 'webmock' # 1.21.0 gem 'capybara' # 2.4.4 end
sequel ships mock adapter purpose:
@@db ||= sequel.connect('mock://oracle') see documentation details how use mocked database:
http://sequel.jeremyevans.net/rdoc-adapters/classes/sequel/mock/database.html http://sequel.jeremyevans.net/rdoc-adapters/classes/sequel/mock/dataset.html
Comments
Post a Comment