Changed tests to use Plain Old Ruby Objects instead of ActiveRecord models to make testing easier. Gets rid of NullDB and ActiveRecord development dependencies

This commit is contained in:
Jonathan Richard Henry Evans 2013-08-21 10:31:11 +01:00
parent 02f4b154e4
commit a1ae2166de
6 changed files with 17 additions and 49 deletions

View file

@ -18,9 +18,7 @@ Gem::Specification.new do |gem|
gem.add_dependency "grape", "~> 0.3"
gem.add_dependency "active_model_serializers", ">= 0.8.1"
gem.add_development_dependency "activerecord"
gem.add_development_dependency "rspec", "~> 2.12.0"
gem.add_development_dependency "rack-test"
gem.add_development_dependency "rake"
gem.add_development_dependency "activerecord-nulldb-adapter"
end

View file

@ -1,18 +0,0 @@
ActiveRecord::Schema.define(version: 20130403105356) do
create_table "users", force: true do |t|
t.string "username"
t.string "first_name"
t.string "last_name"
t.datetime "created_at"
t.datetime "updated_at"
end
create_table "blog_posts", force: true do |t|
t.string "title"
t.string "body"
t.datetime "created_at"
t.datetime "updated_at"
end
end

View file

@ -11,8 +11,6 @@ describe Grape::ActiveModelSerializers do
before do
subject.format :json
subject.formatter :json, Grape::Formatter::ActiveModelSerializers
ActiveRecord::Base.configurations.merge!('test' => {'adapter' => 'nulldb'})
end
def app

View file

@ -1,10 +0,0 @@
ActiveRecord::Schema.define(version: 20130403105356) do
create_table "users", force: true do |t|
t.string "username"
t.string "first_name"
t.string "last_name"
t.datetime "created_at"
t.datetime "updated_at"
end
end

View file

@ -1,15 +1,28 @@
require 'active_model'
class User < ActiveRecord::Base
class User
include ActiveModel::SerializerSupport
attr_accessor :first_name, :last_name, :password, :email
def initialize(params={})
params.each do |k,v|
instance_variable_set("@#{k}", v) unless v.nil?
end
end
end
class UserSerializer < ActiveModel::Serializer
attributes :first_name, :last_name
end
class BlogPost < ActiveRecord::Base
class BlogPost
include ActiveModel::SerializerSupport
attr_accessor :title, :body
def initialize(params={})
params.each do |k,v|
instance_variable_set("@#{k}", v) unless v.nil?
end
end
end
class BlogPostSerializer < ActiveModel::Serializer

View file

@ -4,25 +4,12 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
require 'bundler'
Bundler.setup :default, :test
require 'active_support/core_ext/hash/conversions'
require 'active_record'
require 'active_model'
require "active_model_serializers"
require 'active_support/core_ext/hash/conversions'
require "active_support/json"
require 'rspec'
require 'rack/test'
ActiveRecord::Base.establish_connection :adapter => :nulldb, :schema => 'db/schema.rb'
require 'nulldb_rspec'
include NullDB::RSpec::NullifiedDatabase
NullDB.configure do |ndb|
def ndb.project_root
File.dirname(__FILE__)
end
end
RSpec.configure do |config|
config.include Rack::Test::Methods
end