mspec 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -122,13 +122,6 @@ class MSpecOptions
122
122
  end
123
123
  end
124
124
 
125
- def add_tags_dir
126
- on("-X", "--tags-dir DIR", String,
127
- "Use DIR as the path prefix for locating spec tag files") do |d|
128
- @config[:tags_dir] = d
129
- end
130
- end
131
-
132
125
  def add_formatters
133
126
  on("-f", "--format FORMAT", String,
134
127
  "Formatter for reporting, where FORMAT is one of:") do |o|
@@ -4,7 +4,10 @@ require 'mspec/runner/formatters/dotted'
4
4
 
5
5
  class MSpecScript
6
6
  def self.config
7
- @config ||= { :path => ['.', 'spec'] }
7
+ @config ||= {
8
+ :path => ['.', 'spec'],
9
+ :config_ext => '.mspec'
10
+ }
8
11
  end
9
12
 
10
13
  def self.set(key, value)
@@ -32,11 +35,18 @@ class MSpecScript
32
35
  end
33
36
 
34
37
  def load(name)
35
- return Kernel.load(name) if File.exist?(File.expand_path(name))
38
+ names = [name]
39
+ unless name[-6..-1] == config[:config_ext]
40
+ names << name + config[:config_ext]
41
+ end
42
+
43
+ names.each do |name|
44
+ return Kernel.load(name) if File.exist?(File.expand_path(name))
36
45
 
37
- config[:path].each do |dir|
38
- file = File.join dir, name
39
- return Kernel.load(file) if File.exist? file
46
+ config[:path].each do |dir|
47
+ file = File.join dir, name
48
+ return Kernel.load(file) if File.exist? file
49
+ end
40
50
  end
41
51
  end
42
52
 
data/lib/mspec/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module MSpec
2
- VERSION = '1.0.0'
2
+ VERSION = '1.1.0'
3
3
  end
@@ -27,11 +27,6 @@ describe MSpecCI, "#options" do
27
27
  @script.options
28
28
  end
29
29
 
30
- it "enables the tags dir option" do
31
- @options.should_receive(:add_tags_dir)
32
- @script.options
33
- end
34
-
35
30
  it "enables the dry run option" do
36
31
  @options.should_receive(:add_pretend)
37
32
  @script.options
@@ -94,9 +89,9 @@ describe MSpecCI, "#run" do
94
89
  @script.options
95
90
  end
96
91
 
97
- it "registers the tags directory path" do
98
- @config[:tags_dir] = "tags_dir"
99
- MSpec.should_receive(:register_tags_path).with("tags_dir")
92
+ it "registers the tags patterns" do
93
+ @config[:tags_patterns] = [/spec/, "tags"]
94
+ MSpec.should_receive(:register_tags_patterns).with([/spec/, "tags"])
100
95
  @script.run
101
96
  end
102
97
 
@@ -38,11 +38,6 @@ describe MSpecRun, "#options" do
38
38
  @script.options @argv
39
39
  end
40
40
 
41
- it "enables the tags dir option" do
42
- @options.should_receive(:add_tags_dir)
43
- @script.options @argv
44
- end
45
-
46
41
  it "enables the randomize option to runs specs in random order" do
47
42
  @options.should_receive(:add_randomize)
48
43
  @script.options @argv
@@ -122,9 +117,9 @@ describe MSpecRun, "#run" do
122
117
  @script.options
123
118
  end
124
119
 
125
- it "registers the tags directory path" do
126
- @config[:tags_dir] = "tags_dir"
127
- MSpec.should_receive(:register_tags_path).with("tags_dir")
120
+ it "registers the tags patterns" do
121
+ @config[:tags_patterns] = [/spec/, "tags"]
122
+ MSpec.should_receive(:register_tags_patterns).with([/spec/, "tags"])
128
123
  @script.run
129
124
  end
130
125
 
@@ -38,11 +38,6 @@ describe MSpecTag, "#options" do
38
38
  @script.options @argv
39
39
  end
40
40
 
41
- it "enables the tags dir option" do
42
- @options.should_receive(:add_tags_dir)
43
- @script.options @argv
44
- end
45
-
46
41
  it "enables the dry run option" do
47
42
  @options.should_receive(:add_pretend)
48
43
  @script.options @argv
@@ -107,9 +102,9 @@ describe MSpecTag, "#run" do
107
102
  @script.options
108
103
  end
109
104
 
110
- it "registers the tags directory path" do
111
- @config[:tags_dir] = "tags_dir"
112
- MSpec.should_receive(:register_tags_path).with("tags_dir")
105
+ it "registers the tags patterns" do
106
+ @config[:tags_patterns] = [/spec/, "tags"]
107
+ MSpec.should_receive(:register_tags_patterns).with([/spec/, "tags"])
113
108
  @script.run
114
109
  end
115
110
 
@@ -1,9 +1,20 @@
1
1
  require File.dirname(__FILE__) + '/../spec_helper'
2
2
  require 'mspec/helpers/const_lookup'
3
3
 
4
+ CONST = 2
5
+
4
6
  module ConstLookupSpecs
5
7
  class A
6
8
  class B
9
+ CONST = 1
10
+ end
11
+
12
+ class C; end
13
+
14
+ class D
15
+ def self.const_missing(const)
16
+ A::B::CONST
17
+ end
7
18
  end
8
19
  end
9
20
  end
@@ -16,4 +27,22 @@ describe Kernel, "#const_lookup" do
16
27
  it "returns a regular constant specified without scoping" do
17
28
  const_lookup("ConstLookupSpecs").should == ConstLookupSpecs
18
29
  end
30
+
31
+ it "returns an explicit toplevel constant" do
32
+ const_lookup("::ConstLookupSpecs").should == ConstLookupSpecs
33
+ end
34
+
35
+ it "returns the constant from the proper scope" do
36
+ const_lookup("ConstLookupSpecs::A::B::CONST").should == 1
37
+ end
38
+
39
+ it "raises NameError if the constant is not contained within the module's scope" do
40
+ lambda {
41
+ const_lookup("ConstLookupSpecs::A::C::CONST")
42
+ }.should raise_error(NameError)
43
+ end
44
+
45
+ it "returns the value of #const_missing" do
46
+ const_lookup("ConstLookupSpecs::A::D::CONST").should == 1
47
+ end
19
48
  end
@@ -7,13 +7,16 @@ describe PositiveOperatorMatcher, "== operator" do
7
7
  it "raises an ExpectationNotMetError when expected == actual returns false" do
8
8
  lambda {
9
9
  PositiveOperatorMatcher.new(1) == 2
10
- }.should raise_error(ExpectationNotMetError, "Expected 1 to equal 2")
10
+ }.should raise_error(ExpectationNotMetError)
11
+ end
12
+
13
+ it "provides a failure message that 'Expected x to equal y'" do
14
+ Expectation.should_receive(:fail_with).with("Expected 1\n", "to equal 2\n")
15
+ PositiveOperatorMatcher.new(1) == 2
11
16
  end
12
17
 
13
18
  it "does not raise an exception when expected == actual returns true" do
14
- lambda {
15
- PositiveOperatorMatcher.new(1) == 1
16
- }.should_not raise_error
19
+ PositiveOperatorMatcher.new(1) == 1
17
20
  end
18
21
  end
19
22
 
@@ -21,13 +24,16 @@ describe PositiveOperatorMatcher, "=~ operator" do
21
24
  it "raises an ExpectationNotMetError when expected =~ actual returns false" do
22
25
  lambda {
23
26
  PositiveOperatorMatcher.new('real') =~ /fake/
24
- }.should raise_error(ExpectationNotMetError, %(Expected "real" to match /fake/))
27
+ }.should raise_error(ExpectationNotMetError)
28
+ end
29
+
30
+ it "provides a failure message that 'Expected \"x\" to match y'" do
31
+ Expectation.should_receive(:fail_with).with("Expected \"real\"\n", "to match /fake/\n")
32
+ PositiveOperatorMatcher.new('real') =~ /fake/
25
33
  end
26
34
 
27
35
  it "does not raise an exception when expected =~ actual returns true" do
28
- lambda {
29
- PositiveOperatorMatcher.new('real') =~ /real/
30
- }.should_not raise_error
36
+ PositiveOperatorMatcher.new('real') =~ /real/
31
37
  end
32
38
  end
33
39
 
@@ -35,13 +41,16 @@ describe PositiveOperatorMatcher, "> operator" do
35
41
  it "raises an ExpectationNotMetError when expected > actual returns false" do
36
42
  lambda {
37
43
  PositiveOperatorMatcher.new(4) > 5
38
- }.should raise_error(ExpectationNotMetError, "Expected 4 to be greater than 5")
44
+ }.should raise_error(ExpectationNotMetError)
45
+ end
46
+
47
+ it "provides a failure message that 'Expected x to be greater than y'" do
48
+ Expectation.should_receive(:fail_with).with("Expected 4\n", "to be greater than 5\n")
49
+ PositiveOperatorMatcher.new(4) > 5
39
50
  end
40
51
 
41
52
  it "does not raise an exception when expected > actual returns true" do
42
- lambda {
43
- PositiveOperatorMatcher.new(5) > 4
44
- }.should_not raise_error
53
+ PositiveOperatorMatcher.new(5) > 4
45
54
  end
46
55
  end
47
56
 
@@ -49,14 +58,17 @@ describe PositiveOperatorMatcher, ">= operator" do
49
58
  it "raises an ExpectationNotMetError when expected >= actual returns false" do
50
59
  lambda {
51
60
  PositiveOperatorMatcher.new(4) >= 5
52
- }.should raise_error(ExpectationNotMetError, "Expected 4 to be greater than or equal to 5")
61
+ }.should raise_error(ExpectationNotMetError)
62
+ end
63
+
64
+ it "provides a failure message that 'Expected x to be greater than or equal to y'" do
65
+ Expectation.should_receive(:fail_with).with("Expected 4\n", "to be greater than or equal to 5\n")
66
+ PositiveOperatorMatcher.new(4) >= 5
53
67
  end
54
68
 
55
69
  it "does not raise an exception when expected > actual returns true" do
56
- lambda {
57
- PositiveOperatorMatcher.new(5) >= 4
58
- PositiveOperatorMatcher.new(5) >= 5
59
- }.should_not raise_error
70
+ PositiveOperatorMatcher.new(5) >= 4
71
+ PositiveOperatorMatcher.new(5) >= 5
60
72
  end
61
73
  end
62
74
 
@@ -64,13 +76,16 @@ describe PositiveOperatorMatcher, "< operater" do
64
76
  it "raises an ExpectationNotMetError when expected < actual returns false" do
65
77
  lambda {
66
78
  PositiveOperatorMatcher.new(5) < 4
67
- }.should raise_error(ExpectationNotMetError, "Expected 5 to be less than 4")
79
+ }.should raise_error(ExpectationNotMetError)
80
+ end
81
+
82
+ it "provides a failure message that 'Expected x to be less than y'" do
83
+ Expectation.should_receive(:fail_with).with("Expected 5\n", "to be less than 4\n")
84
+ PositiveOperatorMatcher.new(5) < 4
68
85
  end
69
86
 
70
87
  it "does not raise an exception when expected < actual returns true" do
71
- lambda {
72
- PositiveOperatorMatcher.new(4) < 5
73
- }.should_not raise_error
88
+ PositiveOperatorMatcher.new(4) < 5
74
89
  end
75
90
  end
76
91
 
@@ -78,14 +93,17 @@ describe PositiveOperatorMatcher, "<= operater" do
78
93
  it "raises an ExpectationNotMetError when expected < actual returns false" do
79
94
  lambda {
80
95
  PositiveOperatorMatcher.new(5) <= 4
81
- }.should raise_error(ExpectationNotMetError, "Expected 5 to be less than or equal to 4")
96
+ }.should raise_error(ExpectationNotMetError)
97
+ end
98
+
99
+ it "provides a failure message that 'Expected x to be less than or equal to y'" do
100
+ Expectation.should_receive(:fail_with).with("Expected 5\n", "to be less than or equal to 4\n")
101
+ PositiveOperatorMatcher.new(5) <= 4
82
102
  end
83
103
 
84
104
  it "does not raise an exception when expected < actual returns true" do
85
- lambda {
86
- PositiveOperatorMatcher.new(4) <= 5
87
- PositiveOperatorMatcher.new(4) <= 4
88
- }.should_not raise_error
105
+ PositiveOperatorMatcher.new(4) <= 5
106
+ PositiveOperatorMatcher.new(4) <= 4
89
107
  end
90
108
  end
91
109
 
@@ -93,13 +111,16 @@ describe NegativeOperatorMatcher, "== operator" do
93
111
  it "raises an ExpectationNotMetError when expected == actual returns true" do
94
112
  lambda {
95
113
  NegativeOperatorMatcher.new(1) == 1
96
- }.should raise_error(ExpectationNotMetError, "Expected 1 not to equal 1")
114
+ }.should raise_error(ExpectationNotMetError)
115
+ end
116
+
117
+ it "provides a failure message that 'Expected x not to equal y'" do
118
+ Expectation.should_receive(:fail_with).with("Expected 1\n", "not to equal 1\n")
119
+ NegativeOperatorMatcher.new(1) == 1
97
120
  end
98
121
 
99
122
  it "does not raise an exception when expected == actual returns false" do
100
- lambda {
101
- NegativeOperatorMatcher.new(1) == 2
102
- }.should_not raise_error
123
+ NegativeOperatorMatcher.new(1) == 2
103
124
  end
104
125
  end
105
126
 
@@ -107,13 +128,16 @@ describe NegativeOperatorMatcher, "=~ operator" do
107
128
  it "raises an ExpectationNotMetError when expected =~ actual returns true" do
108
129
  lambda {
109
130
  NegativeOperatorMatcher.new('real') =~ /real/
110
- }.should raise_error(ExpectationNotMetError, %(Expected "real" not to match /real/))
131
+ }.should raise_error(ExpectationNotMetError)
132
+ end
133
+
134
+ it "provides a failure message that 'Expected \"x\" not to match /y/'" do
135
+ Expectation.should_receive(:fail_with).with("Expected \"real\"\n", "not to match /real/\n")
136
+ NegativeOperatorMatcher.new('real') =~ /real/
111
137
  end
112
138
 
113
139
  it "does not raise an exception when expected =~ actual returns false" do
114
- lambda {
115
- NegativeOperatorMatcher.new('real') =~ /fake/
116
- }.should_not raise_error
140
+ NegativeOperatorMatcher.new('real') =~ /fake/
117
141
  end
118
142
  end
119
143
 
@@ -121,13 +145,16 @@ describe NegativeOperatorMatcher, "< operator" do
121
145
  it "raises an ExpectationNotMetError when expected < actual returns true" do
122
146
  lambda {
123
147
  NegativeOperatorMatcher.new(4) < 5
124
- }.should raise_error(ExpectationNotMetError, "Expected 4 not to be less than 5")
148
+ }.should raise_error(ExpectationNotMetError)
149
+ end
150
+
151
+ it "provides a failure message that 'Expected x not to be less than y'" do
152
+ Expectation.should_receive(:fail_with).with("Expected 4\n", "not to be less than 5\n")
153
+ NegativeOperatorMatcher.new(4) < 5
125
154
  end
126
155
 
127
156
  it "does not raise an exception when expected < actual returns false" do
128
- lambda {
129
- NegativeOperatorMatcher.new(5) < 4
130
- }.should_not raise_error
157
+ NegativeOperatorMatcher.new(5) < 4
131
158
  end
132
159
  end
133
160
 
@@ -135,16 +162,19 @@ describe NegativeOperatorMatcher, "<= operator" do
135
162
  it "raises an ExpectationNotMetError when expected <= actual returns true" do
136
163
  lambda {
137
164
  NegativeOperatorMatcher.new(4) <= 5
138
- }.should raise_error(ExpectationNotMetError, "Expected 4 not to be less than or equal to 5")
165
+ }.should raise_error(ExpectationNotMetError)
139
166
  lambda {
140
167
  NegativeOperatorMatcher.new(5) <= 5
141
- }.should raise_error(ExpectationNotMetError, "Expected 5 not to be less than or equal to 5")
168
+ }.should raise_error(ExpectationNotMetError)
169
+ end
170
+
171
+ it "provides a failure message that 'Expected x not to be less than or equal to y'" do
172
+ Expectation.should_receive(:fail_with).with("Expected 4\n", "not to be less than or equal to 5\n")
173
+ NegativeOperatorMatcher.new(4) <= 5
142
174
  end
143
175
 
144
176
  it "does not raise an exception when expected <= actual returns false" do
145
- lambda {
146
- NegativeOperatorMatcher.new(5) <= 4
147
- }.should_not raise_error
177
+ NegativeOperatorMatcher.new(5) <= 4
148
178
  end
149
179
  end
150
180
 
@@ -152,13 +182,16 @@ describe NegativeOperatorMatcher, "> operator" do
152
182
  it "raises an ExpectationNotMetError when expected > actual returns true" do
153
183
  lambda {
154
184
  NegativeOperatorMatcher.new(5) > 4
155
- }.should raise_error(ExpectationNotMetError, "Expected 5 not to be greater than 4")
185
+ }.should raise_error(ExpectationNotMetError)
186
+ end
187
+
188
+ it "provides a failure message that 'Expected x not to be greater than y'" do
189
+ Expectation.should_receive(:fail_with).with("Expected 5\n", "not to be greater than 4\n")
190
+ NegativeOperatorMatcher.new(5) > 4
156
191
  end
157
192
 
158
193
  it "does not raise an exception when expected > actual returns false" do
159
- lambda {
160
- NegativeOperatorMatcher.new(4) > 5
161
- }.should_not raise_error
194
+ NegativeOperatorMatcher.new(4) > 5
162
195
  end
163
196
  end
164
197
 
@@ -166,15 +199,18 @@ describe NegativeOperatorMatcher, ">= operator" do
166
199
  it "raises an ExpectationNotMetError when expected >= actual returns true" do
167
200
  lambda {
168
201
  NegativeOperatorMatcher.new(5) >= 4
169
- }.should raise_error(ExpectationNotMetError, "Expected 5 not to be greater than or equal to 4")
202
+ }.should raise_error(ExpectationNotMetError)
170
203
  lambda {
171
204
  NegativeOperatorMatcher.new(5) >= 5
172
- }.should raise_error(ExpectationNotMetError, "Expected 5 not to be greater than or equal to 5")
205
+ }.should raise_error(ExpectationNotMetError)
206
+ end
207
+
208
+ it "provides a failure message that 'Expected x not to be greater than or equal to y'" do
209
+ Expectation.should_receive(:fail_with).with("Expected 5\n", "not to be greater than or equal to 4\n")
210
+ NegativeOperatorMatcher.new(5) >= 4
173
211
  end
174
212
 
175
213
  it "does not raise an exception when expected >= actual returns false" do
176
- lambda {
177
- NegativeOperatorMatcher.new(4) >= 5
178
- }.should_not raise_error
214
+ NegativeOperatorMatcher.new(4) >= 5
179
215
  end
180
216
  end
@@ -22,12 +22,12 @@ describe EqlMatcher do
22
22
  it "provides a useful failure message" do
23
23
  matcher = EqlMatcher.new("red")
24
24
  matcher.matches?("red")
25
- matcher.failure_message.should == ["Expected \"red\"", "to have same value and type as \"red\""]
25
+ matcher.failure_message.should == ["Expected \"red\"\n", "to have same value and type as \"red\"\n"]
26
26
  end
27
27
 
28
28
  it "provides a useful negative failure message" do
29
29
  matcher = EqlMatcher.new(1)
30
30
  matcher.matches?(1.0)
31
- matcher.negative_failure_message.should == ["Expected 1.0", "not to have same value or type as 1"]
31
+ matcher.negative_failure_message.should == ["Expected 1.0\n", "not to have same value or type as 1\n"]
32
32
  end
33
33
  end