mirror of
https://github.com/TracksApp/tracks.git
synced 2025-12-22 10:10:12 +01:00
Added Rspec and Webrat plugins and started porting Selenium on Rails tests to Rspec Plain Text Stories driving Webrat driving Selenium.
This commit is contained in:
parent
7b432a74ed
commit
2c09db45c5
602 changed files with 47788 additions and 29 deletions
10
vendor/plugins/rspec-rails/spec/rails/mocks/ar_classes.rb
vendored
Normal file
10
vendor/plugins/rspec-rails/spec/rails/mocks/ar_classes.rb
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
class MockableModel < ActiveRecord::Base
|
||||
has_one :associated_model
|
||||
end
|
||||
|
||||
class SubMockableModel < MockableModel
|
||||
end
|
||||
|
||||
class AssociatedModel < ActiveRecord::Base
|
||||
belongs_to :mockable_model
|
||||
end
|
||||
64
vendor/plugins/rspec-rails/spec/rails/mocks/mock_model_spec.rb
vendored
Normal file
64
vendor/plugins/rspec-rails/spec/rails/mocks/mock_model_spec.rb
vendored
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
require File.dirname(__FILE__) + '/../../spec_helper'
|
||||
require File.dirname(__FILE__) + '/ar_classes'
|
||||
|
||||
describe "mock_model" do
|
||||
before(:each) do
|
||||
@model = mock_model(SubMockableModel)
|
||||
end
|
||||
it "should say it is_a? if it is" do
|
||||
@model.is_a?(SubMockableModel).should be(true)
|
||||
end
|
||||
it "should say it is_a? if it's ancestor is" do
|
||||
@model.is_a?(MockableModel).should be(true)
|
||||
end
|
||||
it "should say it is kind_of? if it is" do
|
||||
@model.kind_of?(SubMockableModel).should be(true)
|
||||
end
|
||||
it "should say it is kind_of? if it's ancestor is" do
|
||||
@model.kind_of?(MockableModel).should be(true)
|
||||
end
|
||||
it "should say it is instance_of? if it is" do
|
||||
@model.instance_of?(SubMockableModel).should be(true)
|
||||
end
|
||||
it "should not say it instance_of? if it isn't, even if it's ancestor is" do
|
||||
@model.instance_of?(MockableModel).should be(false)
|
||||
end
|
||||
end
|
||||
|
||||
describe "mock_model with stubbed id", :type => :view do
|
||||
before(:each) do
|
||||
@model = mock_model(MockableModel, :id => 1)
|
||||
end
|
||||
it "should be named using the stubbed id value" do
|
||||
@model.instance_variable_get(:@name).should == "MockableModel_1"
|
||||
end
|
||||
end
|
||||
|
||||
describe "mock_model with null_object", :type => :view do
|
||||
before(:each) do
|
||||
@model = mock_model(MockableModel, :null_object => true, :mocked_method => "mocked")
|
||||
end
|
||||
|
||||
it "should be able to mock methods" do
|
||||
@model.mocked_method.should == "mocked"
|
||||
end
|
||||
it "should return itself to unmocked methods" do
|
||||
@model.unmocked_method.should equal(@model)
|
||||
end
|
||||
end
|
||||
|
||||
describe "mock_model as association", :type => :view do
|
||||
before(:each) do
|
||||
@real = AssociatedModel.create!
|
||||
@mock_model = mock_model(MockableModel)
|
||||
@real.mockable_model = @mock_model
|
||||
end
|
||||
|
||||
it "should pass associated_model == mock" do
|
||||
@mock_model.should == @real.mockable_model
|
||||
end
|
||||
|
||||
it "should pass mock == associated_model" do
|
||||
@real.mockable_model.should == @mock_model
|
||||
end
|
||||
end
|
||||
79
vendor/plugins/rspec-rails/spec/rails/mocks/stub_model_spec.rb
vendored
Normal file
79
vendor/plugins/rspec-rails/spec/rails/mocks/stub_model_spec.rb
vendored
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
require File.dirname(__FILE__) + '/../../spec_helper'
|
||||
require File.dirname(__FILE__) + '/ar_classes'
|
||||
|
||||
describe "stub_model" do
|
||||
describe "defaults" do
|
||||
it "should have an id" do
|
||||
stub_model(MockableModel).id.should be > 0
|
||||
end
|
||||
|
||||
it "should say it is not a new record" do
|
||||
stub_model(MockableModel).should_not be_new_record
|
||||
end
|
||||
end
|
||||
|
||||
it "should accept a stub id" do
|
||||
stub_model(MockableModel, :id => 37).id.should == 37
|
||||
end
|
||||
|
||||
it "should say it is a new record when id is set to nil" do
|
||||
stub_model(MockableModel, :id => nil).should be_new_record
|
||||
end
|
||||
|
||||
it "should accept any arbitrary stub" do
|
||||
stub_model(MockableModel, :foo => "bar").foo.should == "bar"
|
||||
end
|
||||
|
||||
it "should accept a stub for save" do
|
||||
stub_model(MockableModel, :save => false).save.should be(false)
|
||||
end
|
||||
|
||||
describe "#as_new_record" do
|
||||
it "should say it is a new record" do
|
||||
stub_model(MockableModel).as_new_record.should be_new_record
|
||||
end
|
||||
|
||||
it "should have a nil id" do
|
||||
stub_model(MockableModel).as_new_record.id.should be(nil)
|
||||
end
|
||||
end
|
||||
|
||||
it "should raise when hitting the db" do
|
||||
lambda do
|
||||
model = stub_model(MockableModel, :changed => true, :attributes_with_quotes => {'this' => 'that'})
|
||||
model.save
|
||||
end.should raise_error(Spec::Rails::IllegalDataAccessException, /stubbed models are not allowed to access the database/)
|
||||
end
|
||||
|
||||
it "should increment the id" do
|
||||
first = stub_model(MockableModel)
|
||||
second = stub_model(MockableModel)
|
||||
second.id.should == (first.id + 1)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
describe "stub_model as association" do
|
||||
before(:each) do
|
||||
@real = AssociatedModel.create!
|
||||
@stub_model = stub_model(MockableModel)
|
||||
@real.mockable_model = @stub_model
|
||||
end
|
||||
|
||||
it "should pass associated_model == mock" do
|
||||
@stub_model.should == @real.mockable_model
|
||||
end
|
||||
|
||||
it "should pass mock == associated_model" do
|
||||
@real.mockable_model.should == @stub_model
|
||||
end
|
||||
end
|
||||
|
||||
describe "stub_model with a block" do
|
||||
it "should yield the model" do
|
||||
model = stub_model(MockableModel) do |block_arg|
|
||||
@block_arg = block_arg
|
||||
end
|
||||
model.should be(@block_arg)
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue