pretentious 0.2 → 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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/README.md +28 -13
- data/bin/pretentious +6 -1
- data/lib/pretentious.rb +25 -3
- data/lib/pretentious/generator.rb +4 -4
- data/lib/pretentious/lazy_trigger.rb +11 -1
- data/lib/pretentious/minitest_generator.rb +2 -3
- data/lib/pretentious/version.rb +1 -1
- data/pretentious.yml +2 -0
- data/run_test.sh +1 -1
- data/sample.rb +24 -0
- data/spec/generated/test_class1_spec.rb +11 -11
- data/spec/generated/test_class2_spec.rb +4 -4
- data/spec/generated/test_class3_spec.rb +6 -6
- data/spec/generated/test_class4_spec.rb +3 -4
- data/spec/generated/test_class_r1_spec.rb +16 -0
- data/spec/generated/test_class_r2_spec.rb +18 -0
- data/spec/lazy_trigger_spec.rb +22 -0
- data/spec/minitest_generator_spec.rb +1 -1
- data/spec/prententious_spec.rb +1 -1
- data/test/generated/test_test_class1.rb +11 -11
- data/test/generated/test_test_class2.rb +4 -4
- data/test/generated/test_test_class3.rb +6 -6
- data/test/generated/test_test_class4.rb +3 -4
- data/test/generated/test_test_class_r1.rb +22 -0
- data/test/generated/test_test_class_r2.rb +20 -0
- data/test_classes.rb +16 -0
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5787f220ac2e658449fad7002732e5dadd51244b
|
4
|
+
data.tar.gz: 73571c6a0622e96f459de4c19de00f3d48f65d1e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e930f042edb8400183b070447e497b3a6ce7d235cf078bcf09568a904289ba2d29da202667fe32752a52d37846a4a8cec5e7e640d555b682d47e86ac7e38658a
|
7
|
+
data.tar.gz: 7260dfdc09e5d9dc3b170c8d3a1a6f713edc930ba056aafba67707752a49a084a63498c46f586cff7dc144b154b832e75d6750bb982cb9842efa13eb56b6ad52
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# 0.2.1 (2015-12-20)
|
2
|
+
Features:
|
3
|
+
- Allow regex to be used in specifying target classes
|
4
|
+
|
5
|
+
# 0.2 (2015-12-19)
|
6
|
+
Bugfixes:
|
7
|
+
- Fix constants not getting resolved
|
8
|
+
|
9
|
+
Features:
|
10
|
+
- support for pretentious.yml file
|
11
|
+
- Strings can now be passed to spec_for
|
12
|
+
|
1
13
|
# 0.1.12 (2015-12-12)
|
2
14
|
Bugfixes:
|
3
15
|
- fix duplicate specs inside minitest
|
data/README.md
CHANGED
@@ -7,18 +7,17 @@ On a serious note, this gem allows you to generate tests template used for "char
|
|
7
7
|
|
8
8
|
## Table of Contents
|
9
9
|
1. [Installation](#installation)
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
7. [Limitations](#limitations)
|
10
|
+
2. [Usage](#usage)
|
11
|
+
3. [Using the pretentious.yml file](#using-pretentious.yml)
|
12
|
+
4. [Declarative generation without using example files](#declarative-generation-without-using-example-files)
|
13
|
+
5. [Minitest](#minitest)
|
14
|
+
6. [Handling complex parameters and object constructors](#handling-complex-parameters-and-object-constructors)
|
15
|
+
7. [Capturing Exceptions](#capturing-exceptions)
|
16
|
+
8. [Auto Stubbing](#auto-stubbing)
|
17
|
+
9. [Object Deconstruction Utility](#object-deconstruction-utility)
|
18
|
+
10. [Using the Object deconstructor in rails](#using-the-object-deconstructor-in-rails)
|
19
|
+
11. [Things to do after](#things-to-do-after)
|
20
|
+
12. [Limitations](#limitations)
|
22
21
|
|
23
22
|
## Installation
|
24
23
|
Add this line to your application's Gemfile:
|
@@ -165,7 +164,7 @@ end
|
|
165
164
|
|
166
165
|
awesome!
|
167
166
|
|
168
|
-
You can also try this out with
|
167
|
+
You can also try this out with libraries like MD5 for example ...
|
169
168
|
|
170
169
|
```ruby
|
171
170
|
#example.rb
|
@@ -198,8 +197,10 @@ If you run pretentious without passing an example file, it will look for pretent
|
|
198
197
|
|
199
198
|
```YAML
|
200
199
|
# Sample pretentious targets file
|
200
|
+
# use $ to pass a regex or a ruby code that evals to a string
|
201
201
|
targets:
|
202
202
|
- class: Meme
|
203
|
+
- class: $/^TestClass/
|
203
204
|
generators:
|
204
205
|
- rspec
|
205
206
|
- minitest
|
@@ -262,6 +263,20 @@ end
|
|
262
263
|
|
263
264
|
IMPORTANT: If using rails or if it is part of a larger app, make sure to enable this only when you intend to generate specs! delete the initializer or comment the code out when it is not needed.
|
264
265
|
|
266
|
+
If the class is still to be defined, you may pass the name of the class as a string instead. However, calls to class methods can't be reliably captured in this manner:
|
267
|
+
|
268
|
+
```ruby
|
269
|
+
Pretentious.on(UsersController).method_called(:login).spec_for("UserAuthentication")
|
270
|
+
```
|
271
|
+
|
272
|
+
Of course, you call also pass a regex if you want to auto generate classes via some name convention:
|
273
|
+
|
274
|
+
```ruby
|
275
|
+
Pretentious.on(UsersController).method_called(:login).spec_for(/^User/)
|
276
|
+
```
|
277
|
+
|
278
|
+
Classes starting with User will now be watched (e.g. UserController, UserProfile etc.)
|
279
|
+
|
265
280
|
## Minitest
|
266
281
|
The minitest test framework is also supported, simply use Pretentious.minitest_for instead
|
267
282
|
|
data/bin/pretentious
CHANGED
@@ -56,7 +56,12 @@ if filename.nil?
|
|
56
56
|
targets_file = YAML.load_file('pretentious.yml')
|
57
57
|
targets_file['targets'].each do |target|
|
58
58
|
puts "generate for #{target['class']}"
|
59
|
-
|
59
|
+
if target['class'].start_with?('$')
|
60
|
+
target['class'][0] = ''
|
61
|
+
Pretentious::LazyTrigger.new(eval(target['class']), {})
|
62
|
+
else
|
63
|
+
Pretentious::LazyTrigger.new(target['class'], {})
|
64
|
+
end
|
60
65
|
end
|
61
66
|
|
62
67
|
Pretentious.watch {
|
data/lib/pretentious.rb
CHANGED
@@ -13,12 +13,34 @@ require 'pretentious/utils/file_writer'
|
|
13
13
|
|
14
14
|
Class.class_eval do
|
15
15
|
def _stub(*classes)
|
16
|
-
@
|
16
|
+
@stub_classes = classes
|
17
17
|
self
|
18
18
|
end
|
19
19
|
|
20
|
-
def
|
21
|
-
@
|
20
|
+
def _get_stub_classes
|
21
|
+
@stub_classes
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
Regexp.class_eval do
|
26
|
+
def _stub(*classes)
|
27
|
+
@stub_classes = classes
|
28
|
+
self
|
29
|
+
end
|
30
|
+
|
31
|
+
def _get_stub_classes
|
32
|
+
@stub_classes
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
String.class_eval do
|
37
|
+
def _stub(*classes)
|
38
|
+
@stub_classes = classes
|
39
|
+
self
|
40
|
+
end
|
41
|
+
|
42
|
+
def _get_stub_classes
|
43
|
+
@stub_classes
|
22
44
|
end
|
23
45
|
end
|
24
46
|
|
@@ -384,17 +384,17 @@ module Pretentious
|
|
384
384
|
mock_dict = {}
|
385
385
|
|
386
386
|
klasses_or_instances.each do |klass_or_instance|
|
387
|
-
if klass_or_instance.is_a?
|
388
|
-
Pretentious::LazyTrigger.new(klass_or_instance,
|
387
|
+
if klass_or_instance.is_a?(String) || klass_or_instance.is_a?(Regexp)
|
388
|
+
Pretentious::LazyTrigger.new(klass_or_instance, stubs: klass_or_instance._get_stub_classes)
|
389
389
|
else
|
390
390
|
klass = klass_or_instance.class == Class ? klass_or_instance : klass_or_instance.class
|
391
391
|
klasses << replace_class(klass)
|
392
392
|
|
393
393
|
mock_klasses = []
|
394
394
|
|
395
|
-
klass.
|
395
|
+
klass._get_stub_classes.each do |mock_klass|
|
396
396
|
mock_klasses << replace_class(mock_klass, true)
|
397
|
-
end unless klass.
|
397
|
+
end unless klass._get_stub_classes.nil?
|
398
398
|
|
399
399
|
mock_dict[klass] = mock_klasses
|
400
400
|
end
|
@@ -39,11 +39,21 @@ module Pretentious
|
|
39
39
|
@targets[target.stand_in_klass] = target unless @targets.include? target.stand_in_klass
|
40
40
|
end
|
41
41
|
|
42
|
+
def match(value)
|
43
|
+
if @target_class.is_a? Regexp
|
44
|
+
@target_class.match(value)
|
45
|
+
elsif @target_class.is_a? String
|
46
|
+
@target_class == value
|
47
|
+
else
|
48
|
+
@target_class.to_s == value
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
42
52
|
class << self
|
43
53
|
def lookup(class_name)
|
44
54
|
@instances ||= []
|
45
55
|
@instances.each do |instance|
|
46
|
-
return instance if instance.
|
56
|
+
return instance if instance.match(class_name)
|
47
57
|
end
|
48
58
|
nil
|
49
59
|
end
|
@@ -119,7 +119,7 @@ module Pretentious
|
|
119
119
|
params_collection << mock_block[:result]
|
120
120
|
end if block[:context]
|
121
121
|
end
|
122
|
-
end
|
122
|
+
end if method_calls
|
123
123
|
|
124
124
|
if params_collection.size > 0
|
125
125
|
deps = declare_dependencies(context, params_collection, 2)
|
@@ -144,7 +144,6 @@ module Pretentious
|
|
144
144
|
indentation = ''
|
145
145
|
indentation_level.times { indentation << @_indentation }
|
146
146
|
method_calls.each_key do |k|
|
147
|
-
|
148
147
|
info_blocks_arr = method_calls[k]
|
149
148
|
|
150
149
|
info_blocks_arr.each do |block|
|
@@ -159,7 +158,7 @@ module Pretentious
|
|
159
158
|
str << "#{indentation}#{generate_expectation(context, fixture, k, block[:params], block[:block], block[:result])}\n"
|
160
159
|
expectations << str unless expectations.include? str
|
161
160
|
end
|
162
|
-
end
|
161
|
+
end if method_calls
|
163
162
|
expectations.join("\n")
|
164
163
|
end
|
165
164
|
|
data/lib/pretentious/version.rb
CHANGED
data/pretentious.yml
CHANGED
data/run_test.sh
CHANGED
data/sample.rb
CHANGED
@@ -11,3 +11,27 @@ end
|
|
11
11
|
meme = Meme.new
|
12
12
|
meme.i_can_has_cheezburger?
|
13
13
|
meme.will_it_blend?
|
14
|
+
|
15
|
+
class TestClassR1
|
16
|
+
SOME_CONSTANT = "CONST"
|
17
|
+
|
18
|
+
def hello
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
class TestClassR2
|
23
|
+
def hello_again
|
24
|
+
"hi"
|
25
|
+
end
|
26
|
+
|
27
|
+
def pass_message(message)
|
28
|
+
"#{message} #{TestClassR1::SOME_CONSTANT}"
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
test_class1 = TestClassR1.new
|
33
|
+
test_class1.hello
|
34
|
+
|
35
|
+
test_class2 = TestClassR2.new
|
36
|
+
test_class2.hello_again
|
37
|
+
test_class2.pass_message("a message")
|
@@ -16,16 +16,16 @@ RSpec.describe TestClass1 do
|
|
16
16
|
context 'Scenario 2' do
|
17
17
|
before do
|
18
18
|
@another_object = TestClass1.new('test')
|
19
|
-
@
|
20
|
-
@fixture = TestClass1.new(@
|
19
|
+
@a = { hello: 'world', test: @another_object, arr_1: [1, 2, 3, 4, 5, @another_object], sub_hash: { yes: true, obj: @another_object } }
|
20
|
+
@fixture = TestClass1.new(@a)
|
21
21
|
end
|
22
22
|
|
23
23
|
it 'should pass current expectations' do
|
24
24
|
a = proc { |message|
|
25
|
-
@
|
25
|
+
@a
|
26
26
|
}
|
27
27
|
|
28
|
-
|
28
|
+
test_class1 = nil
|
29
29
|
b = proc {
|
30
30
|
# Variable return values ... can't figure out what goes in here...
|
31
31
|
}
|
@@ -36,8 +36,8 @@ RSpec.describe TestClass1 do
|
|
36
36
|
# TestClass1#set_block should return a
|
37
37
|
expect(@fixture.set_block &a).to eq(a)
|
38
38
|
|
39
|
-
# TestClass1#call_block should return @
|
40
|
-
expect(@fixture.call_block &b).to eq(@
|
39
|
+
# TestClass1#call_block should return @a
|
40
|
+
expect(@fixture.call_block &b).to eq(@a)
|
41
41
|
|
42
42
|
# TestClass1#something_is_wrong should return e
|
43
43
|
expect { @fixture.something_is_wrong }.to raise_error
|
@@ -54,20 +54,20 @@ RSpec.describe TestClass1 do
|
|
54
54
|
|
55
55
|
it 'should pass current expectations' do
|
56
56
|
another_object = TestClass1.new('test')
|
57
|
-
# TestClass1#return_self when passed message = #<TestClass1:
|
57
|
+
# TestClass1#return_self when passed message = #<TestClass1:0x0000000119e0c8> should return another_object
|
58
58
|
expect(@fixture.return_self(another_object)).to eq(another_object)
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
62
|
context 'Scenario 4' do
|
63
63
|
before do
|
64
|
-
@
|
65
|
-
@fixture = TestClass1.new(@
|
64
|
+
@another_object = TestClass1.new('test')
|
65
|
+
@fixture = TestClass1.new(@another_object)
|
66
66
|
end
|
67
67
|
|
68
68
|
it 'should pass current expectations' do
|
69
|
-
# TestClass1#message should return @
|
70
|
-
expect(@fixture.message).to eq(@
|
69
|
+
# TestClass1#message should return @another_object
|
70
|
+
expect(@fixture.message).to eq(@another_object)
|
71
71
|
end
|
72
72
|
end
|
73
73
|
end
|
@@ -24,14 +24,14 @@ RSpec.describe TestClass2 do
|
|
24
24
|
|
25
25
|
context 'Scenario 3' do
|
26
26
|
before do
|
27
|
-
@
|
28
|
-
|
29
|
-
@fixture = TestClass2.new(
|
27
|
+
@message3 = 'This is message 3'
|
28
|
+
t = TestClass2.new(@message3, nil)
|
29
|
+
@fixture = TestClass2.new(t, @message3)
|
30
30
|
end
|
31
31
|
|
32
32
|
it 'should pass current expectations' do
|
33
33
|
# TestClass2#test when passed object = "This is message 3" should return 'This is message 3'
|
34
|
-
expect(@fixture.test(@
|
34
|
+
expect(@fixture.test(@message3)).to eq(@message3)
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
@@ -6,9 +6,9 @@ RSpec.describe TestClass3 do
|
|
6
6
|
before do
|
7
7
|
another_object = TestClass1.new('test')
|
8
8
|
b = { hello: 'world', test: another_object, arr_1: [1, 2, 3, 4, 5, another_object], sub_hash: { yes: true, obj: another_object } }
|
9
|
-
|
10
|
-
|
11
|
-
@fixture = TestClass3.new(
|
9
|
+
test_class_one = TestClass1.new(b)
|
10
|
+
test_class_two = TestClass2.new('This is message 2', nil)
|
11
|
+
@fixture = TestClass3.new(test_class_one, test_class_two)
|
12
12
|
end
|
13
13
|
|
14
14
|
it 'should pass current expectations' do
|
@@ -21,9 +21,9 @@ RSpec.describe TestClass3 do
|
|
21
21
|
before do
|
22
22
|
another_object = TestClass1.new('test')
|
23
23
|
b = { hello: 'world', test: another_object, arr_1: [1, 2, 3, 4, 5, another_object], sub_hash: { yes: true, obj: another_object } }
|
24
|
-
|
25
|
-
|
26
|
-
@fixture = TestClass3.new(
|
24
|
+
test_class_one = TestClass1.new(b)
|
25
|
+
test_class_two = TestClass2.new('This is message 2', nil)
|
26
|
+
@fixture = TestClass3.new(test_class_one, test_class_two)
|
27
27
|
end
|
28
28
|
|
29
29
|
it 'should pass current expectations' do
|
@@ -4,12 +4,11 @@ require 'spec_helper'
|
|
4
4
|
RSpec.describe TestClass4 do
|
5
5
|
context 'Scenario 1' do
|
6
6
|
before do
|
7
|
-
|
8
|
-
|
9
|
-
# Variable return values ... can't figure out what goes in here...
|
7
|
+
b = proc {
|
8
|
+
'test'
|
10
9
|
}
|
11
10
|
|
12
|
-
@fixture = TestClass4.new(&
|
11
|
+
@fixture = TestClass4.new(&b)
|
13
12
|
end
|
14
13
|
|
15
14
|
it 'should pass current expectations' do
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# This file was automatically generated by the pretentious gem
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
RSpec.describe TestClassR1 do
|
5
|
+
context 'Scenario 1' do
|
6
|
+
before do
|
7
|
+
@fixture = TestClassR1.new
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should pass current expectations' do
|
11
|
+
# TestClassR1#hello should return nil
|
12
|
+
expect(@fixture.hello).to be_nil
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# This file was automatically generated by the pretentious gem
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
RSpec.describe TestClassR2 do
|
5
|
+
context 'Scenario 1' do
|
6
|
+
before do
|
7
|
+
@fixture = TestClassR2.new
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should pass current expectations' do
|
11
|
+
# TestClassR2#hello_again should return 'hi'
|
12
|
+
expect(@fixture.hello_again).to eq('hi')
|
13
|
+
|
14
|
+
# TestClassR2#pass_message when passed message = "a message" should return 'a message CONST'
|
15
|
+
expect(@fixture.pass_message('a message')).to eq('a message CONST')
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
data/spec/lazy_trigger_spec.rb
CHANGED
@@ -32,4 +32,26 @@ RSpec.describe Pretentious::LazyTrigger do
|
|
32
32
|
end
|
33
33
|
expect(call_artifacts).to eq({TestLazyClass2=>{:output=>"# This file was automatically generated by the pretentious gem\nrequire 'spec_helper'\n\nRSpec.describe TestLazyClass2 do\n context 'Scenario 1' do\n before do\n @fixture = TestLazyClass2.new\n end\n\n it 'should pass current expectations' do\n # TestLazyClass2#test_method should return nil\n expect(@fixture.test_method).to be_nil\n end\n end\nend", :generator=>Pretentious::RspecGenerator}})
|
34
34
|
end
|
35
|
+
|
36
|
+
it "can use regex to perform a match on the class name" do
|
37
|
+
call_artifacts = Pretentious::Generator.generate_for(/^TestLazyClassR/) do
|
38
|
+
class TestLazyClassR1
|
39
|
+
def test_method
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class TestLazyClassR2
|
44
|
+
def test_method
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
lazy_class1 = TestLazyClassR1.new
|
49
|
+
lazy_class1.test_method
|
50
|
+
|
51
|
+
lazy_class2 = TestLazyClassR2.new
|
52
|
+
lazy_class2.test_method
|
53
|
+
end
|
54
|
+
|
55
|
+
expect(call_artifacts).to eq({ TestLazyClassR1 => { :output => "# This file was automatically generated by the pretentious gem\nrequire 'spec_helper'\n\nRSpec.describe TestLazyClassR1 do\n context 'Scenario 1' do\n before do\n @fixture = TestLazyClassR1.new\n end\n\n it 'should pass current expectations' do\n # TestLazyClassR1#test_method should return nil\n expect(@fixture.test_method).to be_nil\n end\n end\nend", :generator=>Pretentious::RspecGenerator}, TestLazyClassR2=>{:output=>"# This file was automatically generated by the pretentious gem\nrequire 'spec_helper'\n\nRSpec.describe TestLazyClassR2 do\n context 'Scenario 1' do\n before do\n @fixture = TestLazyClassR2.new\n end\n\n it 'should pass current expectations' do\n # TestLazyClassR2#test_method should return nil\n expect(@fixture.test_method).to be_nil\n end\n end\nend", :generator=>Pretentious::RspecGenerator}})
|
56
|
+
end
|
35
57
|
end
|
@@ -11,7 +11,7 @@ RSpec.describe Pretentious::Generator do
|
|
11
11
|
|
12
12
|
it "classes should have a stub class section" do
|
13
13
|
Fibonacci._stub(String)
|
14
|
-
expect(Fibonacci.
|
14
|
+
expect(Fibonacci._get_stub_classes).to eq([String])
|
15
15
|
end
|
16
16
|
|
17
17
|
it "tracks object calls" do
|
data/spec/prententious_spec.rb
CHANGED
@@ -18,7 +18,7 @@ RSpec.describe Pretentious::Generator do
|
|
18
18
|
|
19
19
|
it "classes should have a stub class section" do
|
20
20
|
Fibonacci._stub(String)
|
21
|
-
expect(Fibonacci.
|
21
|
+
expect(Fibonacci._get_stub_classes).to eq([String])
|
22
22
|
end
|
23
23
|
|
24
24
|
it "tracks object calls" do
|
@@ -19,16 +19,16 @@ end
|
|
19
19
|
class TestClass1Scenario2 < TestClass1Test
|
20
20
|
def setup
|
21
21
|
@another_object = TestClass1.new('test')
|
22
|
-
@
|
23
|
-
@fixture = TestClass1.new(@
|
22
|
+
@a = { hello: 'world', test: @another_object, arr_1: [1, 2, 3, 4, 5, @another_object], sub_hash: { yes: true, obj: @another_object } }
|
23
|
+
@fixture = TestClass1.new(@a)
|
24
24
|
end
|
25
25
|
|
26
26
|
def test_current_expectation
|
27
27
|
a = proc { |message|
|
28
|
-
@
|
28
|
+
@a
|
29
29
|
}
|
30
30
|
|
31
|
-
|
31
|
+
test_class1 = nil
|
32
32
|
b = proc {
|
33
33
|
# Variable return values ... can't figure out what goes in here...
|
34
34
|
}
|
@@ -40,8 +40,8 @@ class TestClass1Scenario2 < TestClass1Test
|
|
40
40
|
# TestClass1#set_block should return a
|
41
41
|
assert_equal a, @fixture.set_block( &a)
|
42
42
|
|
43
|
-
# TestClass1#call_block should return @
|
44
|
-
assert_equal @
|
43
|
+
# TestClass1#call_block should return @a
|
44
|
+
assert_equal @a, @fixture.call_block( &b)
|
45
45
|
|
46
46
|
# TestClass1#something_is_wrong should return e
|
47
47
|
assert_raises(StandardError) { @fixture.something_is_wrong }
|
@@ -59,19 +59,19 @@ class TestClass1Scenario3 < TestClass1Test
|
|
59
59
|
def test_current_expectation
|
60
60
|
another_object = TestClass1.new('test')
|
61
61
|
|
62
|
-
# TestClass1#return_self when passed message = #<TestClass1:
|
62
|
+
# TestClass1#return_self when passed message = #<TestClass1:0x00000001174fe8> should return another_object
|
63
63
|
assert_equal another_object, @fixture.return_self(another_object)
|
64
64
|
end
|
65
65
|
end
|
66
66
|
|
67
67
|
class TestClass1Scenario4 < TestClass1Test
|
68
68
|
def setup
|
69
|
-
@
|
70
|
-
@fixture = TestClass1.new(@
|
69
|
+
@another_object = TestClass1.new('test')
|
70
|
+
@fixture = TestClass1.new(@another_object)
|
71
71
|
end
|
72
72
|
|
73
73
|
def test_current_expectation
|
74
|
-
# TestClass1#message should return @
|
75
|
-
assert_equal @
|
74
|
+
# TestClass1#message should return @another_object
|
75
|
+
assert_equal @another_object, @fixture.message
|
76
76
|
end
|
77
77
|
end
|
@@ -27,13 +27,13 @@ end
|
|
27
27
|
|
28
28
|
class TestClass2Scenario3 < TestClass2Test
|
29
29
|
def setup
|
30
|
-
@
|
31
|
-
|
32
|
-
@fixture = TestClass2.new(
|
30
|
+
@message3 = 'This is message 3'
|
31
|
+
t = TestClass2.new(@message3, nil)
|
32
|
+
@fixture = TestClass2.new(t, @message3)
|
33
33
|
end
|
34
34
|
|
35
35
|
def test_current_expectation
|
36
36
|
# TestClass2#test when passed object = "This is message 3" should return 'This is message 3'
|
37
|
-
assert_equal 'This is message 3', @fixture.test(@
|
37
|
+
assert_equal 'This is message 3', @fixture.test(@message3)
|
38
38
|
end
|
39
39
|
end
|
@@ -9,9 +9,9 @@ class TestClass3Scenario1 < TestClass3Test
|
|
9
9
|
def setup
|
10
10
|
another_object = TestClass1.new('test')
|
11
11
|
b = { hello: 'world', test: another_object, arr_1: [1, 2, 3, 4, 5, another_object], sub_hash: { yes: true, obj: another_object } }
|
12
|
-
|
13
|
-
|
14
|
-
@fixture = TestClass3.new(
|
12
|
+
test_class_one = TestClass1.new(b)
|
13
|
+
test_class_two = TestClass2.new('This is message 2', nil)
|
14
|
+
@fixture = TestClass3.new(test_class_one, test_class_two)
|
15
15
|
end
|
16
16
|
|
17
17
|
def test_current_expectation
|
@@ -24,9 +24,9 @@ class TestClass3Scenario2 < TestClass3Test
|
|
24
24
|
def setup
|
25
25
|
another_object = TestClass1.new('test')
|
26
26
|
b = { hello: 'world', test: another_object, arr_1: [1, 2, 3, 4, 5, another_object], sub_hash: { yes: true, obj: another_object } }
|
27
|
-
|
28
|
-
|
29
|
-
@fixture = TestClass3.new(
|
27
|
+
test_class_one = TestClass1.new(b)
|
28
|
+
test_class_two = TestClass2.new('This is message 2', nil)
|
29
|
+
@fixture = TestClass3.new(test_class_one, test_class_two)
|
30
30
|
end
|
31
31
|
|
32
32
|
def test_current_expectation
|
@@ -7,12 +7,11 @@ end
|
|
7
7
|
|
8
8
|
class TestClass4Scenario1 < TestClass4Test
|
9
9
|
def setup
|
10
|
-
|
11
|
-
|
12
|
-
# Variable return values ... can't figure out what goes in here...
|
10
|
+
b = proc {
|
11
|
+
'test'
|
13
12
|
}
|
14
13
|
|
15
|
-
@fixture = TestClass4.new(&
|
14
|
+
@fixture = TestClass4.new(&b)
|
16
15
|
end
|
17
16
|
|
18
17
|
def test_current_expectation
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# This file was automatically generated by the pretentious gem
|
2
|
+
require 'minitest_helper'
|
3
|
+
require 'minitest/autorun'
|
4
|
+
|
5
|
+
class TestClassR1Test < Minitest::Test
|
6
|
+
end
|
7
|
+
|
8
|
+
class TestClassR1Scenario1 < TestClassR1Test
|
9
|
+
def setup
|
10
|
+
@fixture = TestClassR1.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_current_expectation
|
14
|
+
# TestClassR1#hello should return nil
|
15
|
+
assert_nil @fixture.hello
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
class TestClassR1ImpostorScenario2 < TestClassR1Test
|
20
|
+
def test_current_expectation
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# This file was automatically generated by the pretentious gem
|
2
|
+
require 'minitest_helper'
|
3
|
+
require 'minitest/autorun'
|
4
|
+
|
5
|
+
class TestClassR2Test < Minitest::Test
|
6
|
+
end
|
7
|
+
|
8
|
+
class TestClassR2Scenario1 < TestClassR2Test
|
9
|
+
def setup
|
10
|
+
@fixture = TestClassR2.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_current_expectation
|
14
|
+
# TestClassR2#hello_again should return 'hi'
|
15
|
+
assert_equal 'hi', @fixture.hello_again
|
16
|
+
|
17
|
+
# TestClassR2#pass_message when passed message = "a message" should return 'a message CONST'
|
18
|
+
assert_equal 'a message CONST', @fixture.pass_message('a message')
|
19
|
+
end
|
20
|
+
end
|
data/test_classes.rb
CHANGED
@@ -244,5 +244,21 @@ class TestClassForAutoStub
|
|
244
244
|
return_values << @class_to_be_used2.get_message
|
245
245
|
return_values
|
246
246
|
end
|
247
|
+
end
|
248
|
+
|
249
|
+
class TestClassR1
|
250
|
+
SOME_CONSTANT = "CONST"
|
251
|
+
|
252
|
+
def hello
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
class TestClassR2
|
257
|
+
def hello_again
|
258
|
+
"hi"
|
259
|
+
end
|
247
260
|
|
261
|
+
def pass_message(message)
|
262
|
+
"#{message} #{TestClassR1::SOME_CONSTANT}"
|
263
|
+
end
|
248
264
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pretentious
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joseph Emmanuel Dayo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: binding_of_caller
|
@@ -195,6 +195,8 @@ files:
|
|
195
195
|
- spec/generated/test_class4_spec.rb
|
196
196
|
- spec/generated/test_class_for_auto_stub_spec.rb
|
197
197
|
- spec/generated/test_class_for_mocks_spec.rb
|
198
|
+
- spec/generated/test_class_r1_spec.rb
|
199
|
+
- spec/generated/test_class_r2_spec.rb
|
198
200
|
- spec/generator_spec.rb
|
199
201
|
- spec/lazy_trigger_spec.rb
|
200
202
|
- spec/minitest_generator_spec.rb
|
@@ -209,6 +211,8 @@ files:
|
|
209
211
|
- test/generated/test_test_class3.rb
|
210
212
|
- test/generated/test_test_class4.rb
|
211
213
|
- test/generated/test_test_class_for_mocks.rb
|
214
|
+
- test/generated/test_test_class_r1.rb
|
215
|
+
- test/generated/test_test_class_r2.rb
|
212
216
|
- test/minitest_helper.rb
|
213
217
|
- test/test_generator.rb
|
214
218
|
- test_classes.rb
|
@@ -248,6 +252,8 @@ test_files:
|
|
248
252
|
- spec/generated/test_class4_spec.rb
|
249
253
|
- spec/generated/test_class_for_auto_stub_spec.rb
|
250
254
|
- spec/generated/test_class_for_mocks_spec.rb
|
255
|
+
- spec/generated/test_class_r1_spec.rb
|
256
|
+
- spec/generated/test_class_r2_spec.rb
|
251
257
|
- spec/generator_spec.rb
|
252
258
|
- spec/lazy_trigger_spec.rb
|
253
259
|
- spec/minitest_generator_spec.rb
|
@@ -262,5 +268,7 @@ test_files:
|
|
262
268
|
- test/generated/test_test_class3.rb
|
263
269
|
- test/generated/test_test_class4.rb
|
264
270
|
- test/generated/test_test_class_for_mocks.rb
|
271
|
+
- test/generated/test_test_class_r1.rb
|
272
|
+
- test/generated/test_test_class_r2.rb
|
265
273
|
- test/minitest_helper.rb
|
266
274
|
- test/test_generator.rb
|