on-test-spec 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,82 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+ require 'test/spec/rails/macros'
3
+
4
+ describe "Response::TestGenerator, concerning generation" do
5
+ before do
6
+ @test = mock('Test')
7
+ @generator = Test::Spec::Rails::Macros::Response::TestGenerator.new(@test, :not_found, 'Expected to not find a resource')
8
+ end
9
+
10
+ it "should generate a test description for a GET" do
11
+ @test.expects(:it).with("should not find resource with GET on `index'")
12
+ @generator.get(:index)
13
+ end
14
+
15
+ it "should generate a test description for a POST with params" do
16
+ @test.expects(:it).with("should not find resource with POST on `create' {:venue=>{:name=>\"Bitterzoet\"}}")
17
+ @generator.post(:create, :venue => { :name => "Bitterzoet" })
18
+ end
19
+
20
+ it "should raise a NoMethodError when you pass an unknown HTTP verb" do
21
+ lambda {
22
+ @generator.unknown :index
23
+ }.should.raise(NoMethodError)
24
+ end
25
+ end
26
+
27
+
28
+ class Immediate
29
+ def self.it(description, &block)
30
+ block.call
31
+ end
32
+ end
33
+
34
+ describe "Response::TestGenerator, concerning test contents" do
35
+ before do
36
+ @generator = Test::Spec::Rails::Macros::Response::TestGenerator.new(Immediate, :not_found, 'Expected to not find a resource')
37
+ @generator.stubs(:send).with(:status).returns(:not_found)
38
+ end
39
+
40
+ it "should send the verb and options to the controller" do
41
+ params = {:venue => {:name => "Bitterzoet"}}
42
+ @generator.stubs(:immediate_values).with(params).returns(params)
43
+ @generator.expects(:send).with(:post, :create, params)
44
+
45
+ @generator.post(:create, params)
46
+ end
47
+
48
+ it "should immediate values in params" do
49
+ params = {:name => 'bitterzoet'}
50
+
51
+ @generator.expects(:immediate_values).with(params).returns(params)
52
+ @generator.stubs(:send).returns(true)
53
+
54
+ @generator.post(:create, params)
55
+ end
56
+
57
+ it "should test the return value of the validation method against the expected method" do
58
+ @generator.expected = false
59
+ params = {:name => 'bitterzoet'}
60
+
61
+ @generator.expects(:immediate_values).with(params).returns(params)
62
+ @generator.stubs(:send).returns(false)
63
+
64
+ @generator.post(:create, params)
65
+ end
66
+ end
67
+
68
+ describe "Macros::Response" do
69
+ before do
70
+ @test_case = mock('TestCase')
71
+ @proxy = Test::Spec::Rails::Macros::Should.new(@test_case)
72
+ end
73
+
74
+ it "should return a test generator when a new not found rule is invoked" do
75
+ generator = @proxy.not_find
76
+
77
+ generator.should.is_a(Test::Spec::Rails::Macros::Response::TestGenerator)
78
+ generator.test_case.should == @test_case
79
+ generator.status.should == :not_found
80
+ generator.message.should == 'Expected to not find a resource'
81
+ end
82
+ end
@@ -0,0 +1,100 @@
1
+ require File.expand_path("../test_helper", __FILE__)
2
+ require "test/spec/rails"
3
+
4
+ class RegularClass; end
5
+ class ActiveRecordModel < ActiveRecord::Base; end
6
+ class ActionControllerClass < ActionController::Base; end
7
+ module ViewModuleHelper; end
8
+
9
+ CLASS_TO_TESTCASE_MAPPINGS = {
10
+ RegularClass => ActiveSupport::TestCase,
11
+ ActiveRecordModel => ActiveRecord::TestCase,
12
+ ActionControllerClass => ActionController::TestCase,
13
+ ViewModuleHelper => ActionView::TestCase
14
+ }
15
+
16
+ describe "A test case with a traditional, string only, description" do
17
+ test_case = self
18
+
19
+ it "should inherit from ActiveSupport::TestCase" do
20
+ test_case.superclass.should.be ActiveSupport::TestCase
21
+ end
22
+
23
+ it "should have the description given" do
24
+ test_case.name.should ==
25
+ "A test case with a traditional, string only, description"
26
+ end
27
+ end
28
+
29
+ describe "A test case for an", ActionControllerClass do
30
+ test_case = self
31
+
32
+ it "should have the class assigned as the class to test" do
33
+ test_case.controller_class.should.be ActionControllerClass
34
+ @controller.should.be.instance_of ActionControllerClass
35
+ end
36
+ end
37
+
38
+ describe "A test case for a", ViewModuleHelper do
39
+ test_case = self
40
+
41
+ it "should have the module assigned as the module to test" do
42
+ test_case.helper_class.should.be ViewModuleHelper
43
+ test_case.ancestors.should.include ViewModuleHelper
44
+ end
45
+ end
46
+
47
+ CLASS_TO_TESTCASE_MAPPINGS.each do |test_class, expected_test_case|
48
+
49
+ describe test_class do
50
+ test_case = self
51
+
52
+ it "should inherit from #{expected_test_case}" do
53
+ test_case.superclass.should.be expected_test_case
54
+ end
55
+
56
+ it "should use the model class name as the description" do
57
+ test_case.name.should == test_class.to_s
58
+ end
59
+ end
60
+
61
+ describe "A test case with prepended description for", test_class do
62
+ test_case = self
63
+
64
+ it "should inherit from #{expected_test_case}" do
65
+ test_case.superclass.should.be expected_test_case
66
+ end
67
+
68
+ it "should have appended the model class name to the description" do
69
+ test_case.name.should ==
70
+ "A test case with prepended description for #{test_class}"
71
+ end
72
+ end
73
+
74
+ describe test_class, "test case with a model class and an appended description" do
75
+ test_case = self
76
+
77
+ it "should inherit from #{expected_test_case}" do
78
+ test_case.superclass.should.be expected_test_case
79
+ end
80
+
81
+ it "should have prepended the model class name to the description" do
82
+ test_case.name.should ==
83
+ "#{test_class} test case with a model class and an appended description"
84
+ end
85
+ end
86
+
87
+ describe "An", test_class, "test case with a model class and a prepended _and_ appended description" do
88
+ test_case = self
89
+
90
+ it "should inherit from #{expected_test_case}" do
91
+ test_case.superclass.should.be expected_test_case
92
+ end
93
+
94
+ it "should have inserted the model class name in the middle of the description" do
95
+ test_case.name.should ==
96
+ "An #{test_class} test case with a model class and a prepended _and_ appended description"
97
+ end
98
+ end
99
+
100
+ end
@@ -0,0 +1,50 @@
1
+ require File.expand_path('../test_helper', __FILE__)
2
+ require 'test/spec/share'
3
+
4
+ class DummyMock
5
+ extend SharedSpecsInclusionHelper
6
+
7
+ class << self
8
+ attr_reader :times_called
9
+ def it(name, &block)
10
+ @times_called ||= 0
11
+ @times_called += 1
12
+ end
13
+ end
14
+ end
15
+
16
+ share "Dummy" do
17
+ it("spec 1") {}
18
+ it("spec 2") {}
19
+ end
20
+
21
+ describe "Shared specs" do
22
+ it "should define a global variable that will hold all the shared specs" do
23
+ $shared_specs.should.be.instance_of Hash
24
+ end
25
+ end
26
+
27
+ describe "Kernel#share" do
28
+ it "should add the shared specs to the global shared modules variable" do
29
+ before = $shared_specs.length
30
+ share("Bar") {}
31
+ $shared_specs.length.should == before + 1
32
+ end
33
+
34
+ it "should have stored the proc that holds the specs" do
35
+ $shared_specs['Dummy'].should.be.instance_of Proc
36
+ end
37
+ end
38
+
39
+ describe "SharedSpecsInclusionHelper::shared_specs_for" do
40
+ it "should have extended Test::Unit::TestCase" do
41
+ Test::Unit::TestCase.should.respond_to :shared_specs_for
42
+ end
43
+
44
+ it "should return the specified module containing the shared specs" do
45
+ DummyMock.class_eval do
46
+ shared_specs_for 'Dummy'
47
+ end
48
+ DummyMock.times_called.should.be 2
49
+ end
50
+ end
@@ -0,0 +1,6 @@
1
+ require 'rubygems' rescue LoadError
2
+ require 'test/spec'
3
+ require 'mocha'
4
+
5
+ $:.unshift(File.expand_path('../../lib', __FILE__))
6
+ require 'test/spec/rails'
@@ -0,0 +1,26 @@
1
+ require File.expand_path('../test_helper', __FILE__)
2
+
3
+ module SomeIncludableAssertions
4
+ def assert_foo
5
+ assert true
6
+ end
7
+ end
8
+
9
+ ActionView::TestCase.send(:include, SomeIncludableAssertions)
10
+
11
+ module SomeIncludableExpectations
12
+ def foo
13
+ test_case.assert_foo
14
+ end
15
+ end
16
+
17
+ Test::Spec::Should.send(:include, SomeIncludableExpectations)
18
+
19
+ module AViewHelper
20
+ end
21
+
22
+ describe "Test::Spec::ExpectationExt, for", AViewHelper do
23
+ it "should call assert methods directly on the test case instance" do
24
+ lambda { Object.new.should.foo }.should.not.raise
25
+ end
26
+ end
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: on-test-spec
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.4
5
+ platform: ruby
6
+ authors:
7
+ - Manfred Stienstra
8
+ - Eloy Duran
9
+ - Cristi Balan
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+
14
+ date: 2009-11-03 00:00:00 +01:00
15
+ default_executable:
16
+ dependencies: []
17
+
18
+ description: Rails plugin to make testing Rails on test/spec easier.
19
+ email: eloy.de.enige@gmail.com
20
+ executables: []
21
+
22
+ extensions: []
23
+
24
+ extra_rdoc_files:
25
+ - LICENSE
26
+ - README
27
+ files:
28
+ - .gitignore
29
+ - LICENSE
30
+ - README
31
+ - Rakefile
32
+ - VERSION.yml
33
+ - dot.autotest
34
+ - lib/test/spec/add_allow_switch.rb
35
+ - lib/test/spec/rails.rb
36
+ - lib/test/spec/rails/controller_helpers.rb
37
+ - lib/test/spec/rails/expectations.rb
38
+ - lib/test/spec/rails/macros.rb
39
+ - lib/test/spec/rails/macros/authorization.rb
40
+ - lib/test/spec/rails/macros/response.rb
41
+ - lib/test/spec/rails/request_helpers.rb
42
+ - lib/test/spec/rails/response_helpers.rb
43
+ - lib/test/spec/rails/spec_responder.rb
44
+ - lib/test/spec/rails/test_spec_ext.rb
45
+ - lib/test/spec/share.rb
46
+ - on-test-spec.gemspec
47
+ - test/add_allow_switch_test.rb
48
+ - test/controller_helpers_test.rb
49
+ - test/expectations_test.rb
50
+ - test/macros/authorization_test.rb
51
+ - test/macros/base_test.rb
52
+ - test/macros/response_test.rb
53
+ - test/rails_test.rb
54
+ - test/share_test.rb
55
+ - test/test_helper.rb
56
+ - test/test_spec_ext_test.rb
57
+ has_rdoc: true
58
+ homepage: http://github.com/Fingertips/on-test-spec
59
+ licenses: []
60
+
61
+ post_install_message:
62
+ rdoc_options:
63
+ - --charset=UTF-8
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: "0"
71
+ version:
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: "0"
77
+ version:
78
+ requirements: []
79
+
80
+ rubyforge_project:
81
+ rubygems_version: 1.3.5
82
+ signing_key:
83
+ specification_version: 3
84
+ summary: Rails plugin to make testing Rails on test/spec easier.
85
+ test_files:
86
+ - test/add_allow_switch_test.rb
87
+ - test/controller_helpers_test.rb
88
+ - test/expectations_test.rb
89
+ - test/macros/authorization_test.rb
90
+ - test/macros/base_test.rb
91
+ - test/macros/response_test.rb
92
+ - test/rails_test.rb
93
+ - test/share_test.rb
94
+ - test/test_helper.rb
95
+ - test/test_spec_ext_test.rb