tiramisu 0.0.0 → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -5
- data/.travis.yml +3 -0
- data/README.md +305 -3
- data/README.md.html +348 -0
- data/Rakefile +10 -1
- data/bin/tiramisu +4 -0
- data/lib/tiramisu.rb +117 -2
- data/lib/tiramisu/assert.rb +142 -0
- data/lib/tiramisu/core_ext.rb +102 -0
- data/lib/tiramisu/mock.rb +48 -0
- data/lib/tiramisu/mock/expectation.rb +44 -0
- data/lib/tiramisu/mock/expectation/raise.rb +34 -0
- data/lib/tiramisu/mock/expectation/return.rb +34 -0
- data/lib/tiramisu/mock/expectation/throw.rb +26 -0
- data/lib/tiramisu/mock/expectation/with.rb +38 -0
- data/lib/tiramisu/pretty_print.rb +55 -0
- data/lib/tiramisu/run.rb +77 -0
- data/lib/tiramisu/unit.rb +195 -0
- data/lib/tiramisu/util.rb +91 -0
- data/lib/tiramisu/util/assert_raise.rb +54 -0
- data/lib/tiramisu/util/assert_throw.rb +40 -0
- data/lib/tiramisu/util/refute_raise.rb +48 -0
- data/lib/tiramisu/util/refute_throw.rb +34 -0
- data/test/assert_test.rb +98 -0
- data/test/context_inheritance_test.rb +65 -0
- data/test/hooks_test.rb +36 -0
- data/test/raise_test.rb +66 -0
- data/test/receive_and_raise_test.rb +91 -0
- data/test/receive_and_return_test.rb +74 -0
- data/test/receive_and_throw_test.rb +74 -0
- data/test/receive_test.rb +48 -0
- data/test/receive_with_test.rb +62 -0
- data/test/refute_raise_test.rb +90 -0
- data/test/refute_throw_test.rb +42 -0
- data/test/setup.rb +25 -0
- data/test/skip_test.rb +40 -0
- data/test/throw_test.rb +58 -0
- data/tiramisu.gemspec +5 -4
- metadata +57 -11
- data/lib/tiramisu/version.rb +0 -3
@@ -0,0 +1,42 @@
|
|
1
|
+
describe :refute_throw do
|
2
|
+
|
3
|
+
it 'should pass when nothing thrown' do
|
4
|
+
this = self
|
5
|
+
spec rand do
|
6
|
+
test(:test) {refute {}.throw}
|
7
|
+
this.assert_equal :__tiramisu_passed__, run(:test)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should fail when something thrown' do
|
12
|
+
this = self
|
13
|
+
spec rand do
|
14
|
+
test(:test) {refute {throw :x}.throw}
|
15
|
+
this.assert_equal Tiramisu::GenericFailure, run(:test).class
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should pass when thrown symbol does not match negated one' do
|
20
|
+
this = self
|
21
|
+
spec rand do
|
22
|
+
test(:test) {refute {throw :x}.throw(:y)}
|
23
|
+
this.assert_equal :__tiramisu_passed__, run(:test)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should fail when thrown symbol does match negated one' do
|
28
|
+
this = self
|
29
|
+
spec rand do
|
30
|
+
test(:test) {refute {throw :x}.throw(:x)}
|
31
|
+
this.assert_equal Tiramisu::GenericFailure, run(:test).class
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should fail when a negated symbol given and nothing thrown' do
|
36
|
+
this = self
|
37
|
+
spec rand do
|
38
|
+
test(:test) {refute {}.throw(:x)}
|
39
|
+
this.assert_equal Tiramisu::GenericFailure, run(:test).class
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
data/test/setup.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'tiramisu'
|
4
|
+
|
5
|
+
module Minitest
|
6
|
+
class Mock
|
7
|
+
def respond_to?(sym, include_private = false)
|
8
|
+
retval = __respond_to?(sym, include_private)
|
9
|
+
if @expected_calls.key?(:respond_to?)
|
10
|
+
@actual_calls[:respond_to?] << {retval: retval, args: [sym, include_private]}
|
11
|
+
end
|
12
|
+
retval
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def proxy obj
|
18
|
+
Tiramisu::Assert.new(returned: obj)
|
19
|
+
end
|
20
|
+
|
21
|
+
def mock meth, *args, &block
|
22
|
+
m = Minitest::Mock.new
|
23
|
+
m.expect(meth, true, args, &block)
|
24
|
+
proxy(m)
|
25
|
+
end
|
data/test/skip_test.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
describe :skip do
|
2
|
+
|
3
|
+
it 'should skip inside spec' do
|
4
|
+
r, w = IO.pipe
|
5
|
+
fork do
|
6
|
+
r.close
|
7
|
+
s = Tiramisu.define_spec :skip_spec, proc {
|
8
|
+
test(:a) {}
|
9
|
+
skip
|
10
|
+
test(:b) {}
|
11
|
+
}
|
12
|
+
w.print({skips: Tiramisu.skips.size, tests: s.tests.size}.to_json)
|
13
|
+
end
|
14
|
+
w.close
|
15
|
+
data = JSON.parse(r.read)
|
16
|
+
assert_equal 1, data['skips']
|
17
|
+
assert_equal 1, data['tests']
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'should skip inside test' do
|
21
|
+
r, w = IO.pipe
|
22
|
+
fork do
|
23
|
+
r.close
|
24
|
+
buffer = []
|
25
|
+
Tiramisu.define_and_register_a_spec :skip_test, proc {
|
26
|
+
test :x do
|
27
|
+
buffer << 'a'
|
28
|
+
skip
|
29
|
+
buffer << 'b'
|
30
|
+
end
|
31
|
+
}
|
32
|
+
Tiramisu.run
|
33
|
+
w.print({skips: Tiramisu.skips.size, buffer: buffer}.to_json)
|
34
|
+
end
|
35
|
+
w.close
|
36
|
+
data = JSON.parse(r.read)
|
37
|
+
assert_equal 1, data['skips']
|
38
|
+
assert_equal ["a"], data['buffer']
|
39
|
+
end
|
40
|
+
end
|
data/test/throw_test.rb
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
describe :throw do
|
2
|
+
|
3
|
+
it 'should pass when any symbol expected and something thrown' do
|
4
|
+
this = self
|
5
|
+
spec rand do
|
6
|
+
test(:test) {assert {throw :x}.throw}
|
7
|
+
this.assert_equal :__tiramisu_passed__, run(:test)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'should pass when specific symbol expected and thrown' do
|
12
|
+
this = self
|
13
|
+
spec rand do
|
14
|
+
test(:test) {assert {throw :x}.throw(:x)}
|
15
|
+
this.assert_equal :__tiramisu_passed__, run(:test)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'should fail when any throw expected but nothing thrown' do
|
20
|
+
this = self
|
21
|
+
spec rand do
|
22
|
+
test(:test) {assert {}.throw}
|
23
|
+
this.assert_equal Tiramisu::GenericFailure, run(:test).class
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should fail when specific symbol expected but nothing thrown' do
|
28
|
+
this = self
|
29
|
+
spec rand do
|
30
|
+
test(:test) {assert {}.throw(:x)}
|
31
|
+
this.assert_equal Tiramisu::GenericFailure, run(:test).class
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should fail when wrong symbol thrown' do
|
36
|
+
this = self
|
37
|
+
spec rand do
|
38
|
+
test(:test) {assert {throw :y}.throw(:x)}
|
39
|
+
this.assert_equal Tiramisu::GenericFailure, run(:test).class
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'should pass when given block validates thrown symbol' do
|
44
|
+
this = self
|
45
|
+
spec rand do
|
46
|
+
test(:test) {assert {throw :x}.throw {|s| s == :x}}
|
47
|
+
this.assert_equal :__tiramisu_passed__, run(:test)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'should fail when given block invalidates thrown symbol' do
|
52
|
+
this = self
|
53
|
+
spec rand do
|
54
|
+
test(:test) {assert {}.throw {false}}
|
55
|
+
this.assert_equal Tiramisu::GenericFailure, run(:test).class
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/tiramisu.gemspec
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
|
3
|
-
name, version = 'tiramisu 0.0.
|
3
|
+
name, version = 'tiramisu 0.0.1'.split
|
4
4
|
Gem::Specification.new do |spec|
|
5
5
|
spec.name = name
|
6
6
|
spec.version = version
|
7
7
|
spec.authors = ['Slee Woo']
|
8
8
|
spec.email = ['mail@sleewoo.com']
|
9
|
-
spec.description =
|
9
|
+
spec.description = 'Super-simple testing library for Ruby'
|
10
10
|
spec.summary = [name, version]*'-'
|
11
11
|
spec.homepage = 'https://github.com/sleewoo/' + name
|
12
12
|
spec.license = 'MIT'
|
@@ -14,13 +14,14 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.files = Dir['**/{*,.[a-z]*}'].reject {|e| e =~ /\.(gem|lock)\Z/}
|
15
15
|
spec.require_paths = ['lib']
|
16
16
|
|
17
|
-
spec.executables = Dir['bin/*'].map{|f| File.basename(f)}
|
17
|
+
spec.executables = Dir['bin/*'].map{ |f| File.basename(f)}
|
18
18
|
|
19
19
|
spec.required_ruby_version = '>= 2'
|
20
20
|
|
21
21
|
spec.add_runtime_dependency 'tty-progressbar', '~> 0.5'
|
22
22
|
spec.add_runtime_dependency 'tty-screen', '~> 0.1'
|
23
|
-
spec.add_runtime_dependency '
|
23
|
+
spec.add_runtime_dependency 'pastel', '~> 0.4'
|
24
|
+
spec.add_runtime_dependency 'coderay', '~> 1'
|
24
25
|
|
25
26
|
spec.add_development_dependency 'minitest', '~> 5.5'
|
26
27
|
spec.add_development_dependency 'bundler', '~> 1.8'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tiramisu
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Slee Woo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: tty-progressbar
|
@@ -39,19 +39,33 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.1'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: pastel
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0.4'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0.4'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: coderay
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: minitest
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -94,20 +108,53 @@ dependencies:
|
|
94
108
|
- - "~>"
|
95
109
|
- !ruby/object:Gem::Version
|
96
110
|
version: '10.4'
|
97
|
-
description:
|
111
|
+
description: Super-simple testing library for Ruby
|
98
112
|
email:
|
99
113
|
- mail@sleewoo.com
|
100
|
-
executables:
|
114
|
+
executables:
|
115
|
+
- tiramisu
|
101
116
|
extensions: []
|
102
117
|
extra_rdoc_files: []
|
103
118
|
files:
|
104
119
|
- ".gitignore"
|
120
|
+
- ".travis.yml"
|
105
121
|
- Gemfile
|
106
122
|
- LICENSE.txt
|
107
123
|
- README.md
|
124
|
+
- README.md.html
|
108
125
|
- Rakefile
|
126
|
+
- bin/tiramisu
|
109
127
|
- lib/tiramisu.rb
|
110
|
-
- lib/tiramisu/
|
128
|
+
- lib/tiramisu/assert.rb
|
129
|
+
- lib/tiramisu/core_ext.rb
|
130
|
+
- lib/tiramisu/mock.rb
|
131
|
+
- lib/tiramisu/mock/expectation.rb
|
132
|
+
- lib/tiramisu/mock/expectation/raise.rb
|
133
|
+
- lib/tiramisu/mock/expectation/return.rb
|
134
|
+
- lib/tiramisu/mock/expectation/throw.rb
|
135
|
+
- lib/tiramisu/mock/expectation/with.rb
|
136
|
+
- lib/tiramisu/pretty_print.rb
|
137
|
+
- lib/tiramisu/run.rb
|
138
|
+
- lib/tiramisu/unit.rb
|
139
|
+
- lib/tiramisu/util.rb
|
140
|
+
- lib/tiramisu/util/assert_raise.rb
|
141
|
+
- lib/tiramisu/util/assert_throw.rb
|
142
|
+
- lib/tiramisu/util/refute_raise.rb
|
143
|
+
- lib/tiramisu/util/refute_throw.rb
|
144
|
+
- test/assert_test.rb
|
145
|
+
- test/context_inheritance_test.rb
|
146
|
+
- test/hooks_test.rb
|
147
|
+
- test/raise_test.rb
|
148
|
+
- test/receive_and_raise_test.rb
|
149
|
+
- test/receive_and_return_test.rb
|
150
|
+
- test/receive_and_throw_test.rb
|
151
|
+
- test/receive_test.rb
|
152
|
+
- test/receive_with_test.rb
|
153
|
+
- test/refute_raise_test.rb
|
154
|
+
- test/refute_throw_test.rb
|
155
|
+
- test/setup.rb
|
156
|
+
- test/skip_test.rb
|
157
|
+
- test/throw_test.rb
|
111
158
|
- tiramisu.gemspec
|
112
159
|
homepage: https://github.com/sleewoo/tiramisu
|
113
160
|
licenses:
|
@@ -129,9 +176,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
176
|
version: '0'
|
130
177
|
requirements: []
|
131
178
|
rubyforge_project:
|
132
|
-
rubygems_version: 2.
|
179
|
+
rubygems_version: 2.4.5
|
133
180
|
signing_key:
|
134
181
|
specification_version: 4
|
135
|
-
summary: tiramisu-0.0.
|
182
|
+
summary: tiramisu-0.0.1
|
136
183
|
test_files: []
|
137
|
-
has_rdoc:
|
data/lib/tiramisu/version.rb
DELETED