mocha-on-bacon 0.2.0 → 0.2.1
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.
- data/README.md +1 -1
- data/lib/mocha-on-bacon.rb +1 -1
- metadata +6 -16
- data/spec/mocha-on-bacon_spec.rb +0 -69
- data/spec/spec_helper.rb +0 -116
data/README.md
CHANGED
@@ -64,7 +64,7 @@ For more information see the Mocha and Bacon websites.
|
|
64
64
|
License
|
65
65
|
-------
|
66
66
|
|
67
|
-
Copyright (C) 2011, Eloy Durán <eloy.de.enige@gmail.com>
|
67
|
+
Copyright (C) 2011-2012, Eloy Durán <eloy.de.enige@gmail.com>
|
68
68
|
|
69
69
|
Mocha-on-Bacon is available under the MIT license. See the LICENSE file or
|
70
70
|
http://www.opensource.org/licenses/mit-license.php
|
data/lib/mocha-on-bacon.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mocha-on-bacon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 23
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
8
|
+
- 1
|
9
|
+
version: 0.2.1
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Eloy Duran
|
@@ -15,18 +14,16 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date:
|
17
|
+
date: 2012-07-19 00:00:00 +02:00
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
21
|
name: mocha
|
23
22
|
prerelease: false
|
24
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
24
|
requirements:
|
27
25
|
- - ">="
|
28
26
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 43
|
30
27
|
segments:
|
31
28
|
- 0
|
32
29
|
- 9
|
@@ -47,8 +44,6 @@ files:
|
|
47
44
|
- LICENSE
|
48
45
|
- README.md
|
49
46
|
- lib/mocha-on-bacon.rb
|
50
|
-
- spec/mocha-on-bacon_spec.rb
|
51
|
-
- spec/spec_helper.rb
|
52
47
|
has_rdoc: true
|
53
48
|
homepage: https://github.com/alloy/mocha-on-bacon
|
54
49
|
licenses: []
|
@@ -59,30 +54,25 @@ rdoc_options:
|
|
59
54
|
require_paths:
|
60
55
|
- lib
|
61
56
|
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
-
none: false
|
63
57
|
requirements:
|
64
58
|
- - ">="
|
65
59
|
- !ruby/object:Gem::Version
|
66
|
-
hash: 3
|
67
60
|
segments:
|
68
61
|
- 0
|
69
62
|
version: "0"
|
70
63
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
-
none: false
|
72
64
|
requirements:
|
73
65
|
- - ">="
|
74
66
|
- !ruby/object:Gem::Version
|
75
|
-
hash: 3
|
76
67
|
segments:
|
77
68
|
- 0
|
78
69
|
version: "0"
|
79
70
|
requirements: []
|
80
71
|
|
81
72
|
rubyforge_project:
|
82
|
-
rubygems_version: 1.3.
|
73
|
+
rubygems_version: 1.3.6
|
83
74
|
signing_key:
|
84
75
|
specification_version: 3
|
85
76
|
summary: A Mocha adapter for Bacon
|
86
|
-
test_files:
|
87
|
-
|
88
|
-
- spec/spec_helper.rb
|
77
|
+
test_files: []
|
78
|
+
|
data/spec/mocha-on-bacon_spec.rb
DELETED
@@ -1,69 +0,0 @@
|
|
1
|
-
require File.expand_path('../spec_helper', __FILE__)
|
2
|
-
|
3
|
-
describe "Bacon specs using Mocha, with a mock" do
|
4
|
-
extend MochaBaconHelper
|
5
|
-
|
6
|
-
it "passes when all expectations were fulfilled" do
|
7
|
-
mockee = mock()
|
8
|
-
lambda do
|
9
|
-
mockee.expects(:blah)
|
10
|
-
mockee.blah
|
11
|
-
end.should.be satisfied
|
12
|
-
end
|
13
|
-
|
14
|
-
it "fails when not all expectations were fulfilled" do
|
15
|
-
mockee = mock()
|
16
|
-
lambda { mockee.expects(:blah) }.should.be unsatisfied(mockee, :blah)
|
17
|
-
end
|
18
|
-
|
19
|
-
it "fails when there is an unexpected invocation" do
|
20
|
-
mockee = mock()
|
21
|
-
lambda { mockee.blah }.should.have received_unexpected_invocation(mockee, :blah)
|
22
|
-
end
|
23
|
-
|
24
|
-
it "passes when the mockee receives all expected parameters" do
|
25
|
-
mockee = mock()
|
26
|
-
lambda do
|
27
|
-
mockee.expects(:blah).with(:wibble => 1)
|
28
|
-
mockee.blah(:wibble => 1)
|
29
|
-
end.should.be satisfied
|
30
|
-
end
|
31
|
-
|
32
|
-
it "fails when the mockee receives unexpected parameters and complains about not being satisfied" do
|
33
|
-
mockee = mock()
|
34
|
-
lambda do
|
35
|
-
mockee.expects(:blah).with(:wobble => 1)
|
36
|
-
mockee.blah(:wobble => 2)
|
37
|
-
end.should.be unsatisfied(mockee, :blah, ':wobble => 1')
|
38
|
-
end
|
39
|
-
|
40
|
-
it "fails when the mockee receives unexpected parameters and complains about the unexpected parameters" do
|
41
|
-
mockee = mock()
|
42
|
-
lambda do
|
43
|
-
mockee.expects(:blah).with(:wabble => 1)
|
44
|
-
mockee.blah(:wabble => 2)
|
45
|
-
end.should.have received_unexpected_invocation(mockee, :blah, ':wabble => 2')
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
class AStub
|
50
|
-
def blah
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
describe "Bacon specs using Mocha, with a stub" do
|
55
|
-
extend MochaBaconHelper
|
56
|
-
|
57
|
-
it "passes when all Stubba expectations are fulfilled" do
|
58
|
-
stubbee = AStub.new
|
59
|
-
lambda do
|
60
|
-
stubbee.expects(:blah)
|
61
|
-
stubbee.blah
|
62
|
-
end.should.be satisfied
|
63
|
-
end
|
64
|
-
|
65
|
-
it "fails when not all Stubba expectations were fulfilled" do
|
66
|
-
stubbee = AStub.new
|
67
|
-
lambda { stubbee.expects(:blah) }.should.be unsatisfied(stubbee, :blah)
|
68
|
-
end
|
69
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,116 +0,0 @@
|
|
1
|
-
require "rubygems" rescue LoadError
|
2
|
-
require File.expand_path('../../lib/mocha-on-bacon', __FILE__)
|
3
|
-
|
4
|
-
class Should
|
5
|
-
alias_method :have, :be
|
6
|
-
end
|
7
|
-
|
8
|
-
class MochaTestContext < Bacon::Context
|
9
|
-
def initialize(name)
|
10
|
-
@name = name
|
11
|
-
@before, @after = [], []
|
12
|
-
@specifications = []
|
13
|
-
@current_specification_index = 0
|
14
|
-
end
|
15
|
-
|
16
|
-
def it(description, &block)
|
17
|
-
super
|
18
|
-
@specifications.pop
|
19
|
-
end
|
20
|
-
|
21
|
-
def specification_did_finish(spec)
|
22
|
-
# We don't care in this case
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
module MochaBaconHelper
|
27
|
-
module SilenceOutput
|
28
|
-
attr_accessor :silence
|
29
|
-
|
30
|
-
def handle_specification_begin(name)
|
31
|
-
puts name unless silence
|
32
|
-
end
|
33
|
-
|
34
|
-
def handle_specification_end
|
35
|
-
puts unless silence
|
36
|
-
end
|
37
|
-
|
38
|
-
def handle_specification(name)
|
39
|
-
handle_specification_begin(name)
|
40
|
-
yield
|
41
|
-
handle_specification_end
|
42
|
-
end
|
43
|
-
|
44
|
-
def handle_requirement_begin(description)
|
45
|
-
print "- #{description}" unless silence
|
46
|
-
end
|
47
|
-
|
48
|
-
def handle_requirement_end(error)
|
49
|
-
puts(error.empty? ? "" : " [#{error}]") unless silence
|
50
|
-
end
|
51
|
-
|
52
|
-
def handle_requirement(description)
|
53
|
-
handle_requirement_begin(description)
|
54
|
-
error = yield
|
55
|
-
handle_requirement_end(error)
|
56
|
-
end
|
57
|
-
|
58
|
-
def handle_summary
|
59
|
-
print Bacon::ErrorLog if Bacon::Backtraces && !silence
|
60
|
-
puts "%d specifications (%d requirements), %d failures, %d errors" %
|
61
|
-
Bacon::Counter.values_at(:specifications, :requirements, :failed, :errors) unless silence
|
62
|
-
end
|
63
|
-
end
|
64
|
-
Bacon.extend SilenceOutput
|
65
|
-
|
66
|
-
def counter
|
67
|
-
Bacon::Counter
|
68
|
-
end
|
69
|
-
|
70
|
-
def error_log
|
71
|
-
Bacon::ErrorLog
|
72
|
-
end
|
73
|
-
|
74
|
-
def mocha_context
|
75
|
-
@mocha_context ||= MochaTestContext.new("Mocha test context") {}
|
76
|
-
end
|
77
|
-
|
78
|
-
def run_example(proc)
|
79
|
-
@example_counter ||= 0; @example_counter += 1
|
80
|
-
|
81
|
-
counter_before = counter.dup
|
82
|
-
error_log_before = error_log.dup
|
83
|
-
Bacon.silence = true
|
84
|
-
|
85
|
-
spec = mocha_context.it("Mocha example `#{@example_counter}'", &proc)
|
86
|
-
spec.run if spec.respond_to?(:run) # MacBacon
|
87
|
-
[{ :failed => counter[:failed] - counter_before[:failed], :errors => counter_before[:errors] - counter_before[:errors] }, error_log.dup]
|
88
|
-
ensure
|
89
|
-
counter.replace(counter_before)
|
90
|
-
error_log.replace(error_log_before)
|
91
|
-
Bacon.silence = false
|
92
|
-
end
|
93
|
-
|
94
|
-
def satisfied
|
95
|
-
lambda do |proc|
|
96
|
-
difference, _ = run_example(proc)
|
97
|
-
difference[:errors] == 0 && difference[:failed] == 0
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
def unsatisfied(mockee, method, params = 'any_parameters')
|
102
|
-
lambda do |proc|
|
103
|
-
difference, error_log = run_example(proc)
|
104
|
-
difference[:errors] == 0 && difference[:failed] == 1 &&
|
105
|
-
error_log.include?("- expected exactly once, not yet invoked: #{mockee.mocha_inspect}.#{method}(#{params})")
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
def received_unexpected_invocation(mockee, method, params = '')
|
110
|
-
lambda do |proc|
|
111
|
-
difference, error_log = run_example(proc)
|
112
|
-
difference[:errors] == 0 && difference[:failed] == 1 &&
|
113
|
-
error_log.include?("unexpected invocation: #{mockee.mocha_inspect}.#{method}(#{params})")
|
114
|
-
end
|
115
|
-
end
|
116
|
-
end
|