tzu_mock 0.1.2 → 1.0.0
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/README.md +19 -9
- data/lib/tzu_mock/class_methods.rb +2 -2
- data/lib/tzu_mock/mocker.rb +7 -2
- data/spec/tzu_mock_spec.rb +6 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a623fe290d3bf0e2ecaeda8f7891272261115576
|
4
|
+
data.tar.gz: 5408759d91670c24cd7e3660f60ea83ac7fd9b5f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec7f5e5796be2ec05e37b94138d8e9cf66712e9fe989727dedb4da04688d7d2cc8477c35b3321216c71ba2c71fd7671c478db406bdd822f844ee783680d95e96
|
7
|
+
data.tar.gz: 85e762fa6f101ae45d7fbcf540cb3ed0ea7f08a8d4bcc2f305ac36bb68b73a39e9bf2bab705c89d7ca3d6e8f0944d2fd73c0317aed6b2e3153f431df2bd89f3f
|
data/README.md
CHANGED
@@ -5,9 +5,9 @@ A very simple library for mocking Tzu in RSpec
|
|
5
5
|
## Usage
|
6
6
|
|
7
7
|
```ruby
|
8
|
-
TzuMock.success(klass
|
9
|
-
TzuMock.invalid(klass
|
10
|
-
TzuMock.failure(klass
|
8
|
+
TzuMock.success(klass).returns(result) #=> Successful Outcome
|
9
|
+
TzuMock.invalid(klass).returns(error) #=> Invalid Outcome
|
10
|
+
TzuMock.failure(klass).returns(error) #=> Failed Outcome
|
11
11
|
```
|
12
12
|
|
13
13
|
Consider this Tzu command:
|
@@ -59,7 +59,7 @@ describe UpdateUser do
|
|
59
59
|
let(:params) { { last_name: 'Turner' } }
|
60
60
|
|
61
61
|
context 'success' do
|
62
|
-
before { TzuMock.success(UpdateUser
|
62
|
+
before { TzuMock.success(UpdateUser).returns(result) }
|
63
63
|
|
64
64
|
let(:outcome) { UpdateUser.run(params) }
|
65
65
|
|
@@ -72,7 +72,7 @@ describe UpdateUser do
|
|
72
72
|
end
|
73
73
|
|
74
74
|
context 'invalid' do
|
75
|
-
before { TzuMock.invalid(UpdateUser
|
75
|
+
before { TzuMock.invalid(UpdateUser).returns(error) }
|
76
76
|
|
77
77
|
let(:outcome) { UpdateUser.run(params) }
|
78
78
|
|
@@ -85,7 +85,7 @@ describe UpdateUser do
|
|
85
85
|
end
|
86
86
|
|
87
87
|
context 'failure' do
|
88
|
-
before { TzuMock.failure(UpdateUser
|
88
|
+
before { TzuMock.failure(UpdateUser).returns(error) }
|
89
89
|
|
90
90
|
let(:outcome) { UpdateUser.run!(params) }
|
91
91
|
|
@@ -111,7 +111,7 @@ describe UpdateUser do
|
|
111
111
|
let(:controller) { MockController.new }
|
112
112
|
|
113
113
|
context 'success' do
|
114
|
-
before { TzuMock.success(UpdateUser
|
114
|
+
before { TzuMock.success(UpdateUser).returns(result) }
|
115
115
|
|
116
116
|
it 'mocks a successful outcome and allows parameters to be verified' do
|
117
117
|
controller.update(params)
|
@@ -121,7 +121,7 @@ describe UpdateUser do
|
|
121
121
|
end
|
122
122
|
|
123
123
|
context 'invalid' do
|
124
|
-
before { TzuMock.invalid(UpdateUser
|
124
|
+
before { TzuMock.invalid(UpdateUser).returns(error) }
|
125
125
|
|
126
126
|
it 'mocks a successful outcome and allows parameters to be verified' do
|
127
127
|
controller.update(params)
|
@@ -131,7 +131,7 @@ describe UpdateUser do
|
|
131
131
|
end
|
132
132
|
|
133
133
|
context 'failure' do
|
134
|
-
before { TzuMock.failure(UpdateUser
|
134
|
+
before { TzuMock.failure(UpdateUser).returns(error) }
|
135
135
|
|
136
136
|
it 'mocks a successful outcome and allows parameters to be verified' do
|
137
137
|
controller.update(params)
|
@@ -143,3 +143,13 @@ end
|
|
143
143
|
```
|
144
144
|
|
145
145
|
TzuMock effortlessly passes your desired outcome to the appropriate block.
|
146
|
+
|
147
|
+
## Configuration
|
148
|
+
|
149
|
+
By default, TzuMock mocks the `run` and `run!` methods,
|
150
|
+
but you can add more methods to that list if your Tzu classes have another interface.
|
151
|
+
|
152
|
+
```ruby
|
153
|
+
# spec/spec_helper.rb
|
154
|
+
TzuMock.configure { |config| config.stub_methods = [:go, :go!] }
|
155
|
+
```
|
@@ -5,12 +5,12 @@ module TzuMock
|
|
5
5
|
prepare(method, *args)
|
6
6
|
end
|
7
7
|
|
8
|
-
def prepare(type, klass,
|
8
|
+
def prepare(type, klass, method = nil)
|
9
9
|
# Get the rspec block context. Will not work if you call TzuMock#prepare directly.
|
10
10
|
# Call TzuMock#success, TzuMock#invalid, or TzuMock#failure instead
|
11
11
|
rspec_context = binding.of_caller(2).eval('self')
|
12
12
|
|
13
|
-
Mocker.new(type, klass,
|
13
|
+
Mocker.new(type, klass, rspec_context, method)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
data/lib/tzu_mock/mocker.rb
CHANGED
@@ -1,13 +1,18 @@
|
|
1
1
|
module TzuMock
|
2
2
|
class Mocker
|
3
|
-
def initialize(type, klass,
|
4
|
-
@type, @klass, @
|
3
|
+
def initialize(type, klass, rspec_context, method)
|
4
|
+
@type, @klass, @rspec_context, @method = type, klass, rspec_context, method
|
5
5
|
end
|
6
6
|
|
7
7
|
def mock
|
8
8
|
@rspec_context.instance_eval(&mock_proc(@klass, mock_methods, success?, @result, error_type))
|
9
9
|
end
|
10
10
|
|
11
|
+
def returns(result)
|
12
|
+
@result = result
|
13
|
+
mock
|
14
|
+
end
|
15
|
+
|
11
16
|
private
|
12
17
|
|
13
18
|
# Need to pass variables in explicity to give the Proc access to them
|
data/spec/tzu_mock_spec.rb
CHANGED
@@ -56,7 +56,7 @@ describe TzuMock do
|
|
56
56
|
|
57
57
|
context 'when invocation does not have a block' do
|
58
58
|
context 'success' do
|
59
|
-
before { TzuMock.success(UpdateUser
|
59
|
+
before { TzuMock.success(UpdateUser).returns(result) }
|
60
60
|
|
61
61
|
let(:outcome) { UpdateUser.run!(params) }
|
62
62
|
|
@@ -69,7 +69,7 @@ describe TzuMock do
|
|
69
69
|
end
|
70
70
|
|
71
71
|
context 'invalid' do
|
72
|
-
before { TzuMock.invalid(UpdateUser
|
72
|
+
before { TzuMock.invalid(UpdateUser).returns(error) }
|
73
73
|
|
74
74
|
let(:outcome) { UpdateUser.run!(params) }
|
75
75
|
|
@@ -82,7 +82,7 @@ describe TzuMock do
|
|
82
82
|
end
|
83
83
|
|
84
84
|
context 'failure' do
|
85
|
-
before { TzuMock.failure(UpdateUser
|
85
|
+
before { TzuMock.failure(UpdateUser).returns(error) }
|
86
86
|
|
87
87
|
let(:outcome) { UpdateUser.run(params) }
|
88
88
|
|
@@ -97,7 +97,7 @@ describe TzuMock do
|
|
97
97
|
|
98
98
|
context 'when invocation has a block' do
|
99
99
|
context 'success' do
|
100
|
-
before { TzuMock.success(UpdateUser
|
100
|
+
before { TzuMock.success(UpdateUser).returns(result) }
|
101
101
|
|
102
102
|
let(:controller) { MockController.new }
|
103
103
|
|
@@ -109,7 +109,7 @@ describe TzuMock do
|
|
109
109
|
end
|
110
110
|
|
111
111
|
context 'invalid' do
|
112
|
-
before { TzuMock.invalid(UpdateUser
|
112
|
+
before { TzuMock.invalid(UpdateUser).returns(error) }
|
113
113
|
|
114
114
|
let(:controller) { MockController.new }
|
115
115
|
|
@@ -121,7 +121,7 @@ describe TzuMock do
|
|
121
121
|
end
|
122
122
|
|
123
123
|
context 'failure' do
|
124
|
-
before { TzuMock.failure(UpdateUser
|
124
|
+
before { TzuMock.failure(UpdateUser).returns(error) }
|
125
125
|
|
126
126
|
let(:controller) { MockController.new }
|
127
127
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tzu_mock
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Blake Turner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-07-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: binding_of_caller
|