assay-testunit 0.1.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.
- data/.ruby +52 -0
- data/.yardopts +7 -0
- data/COPYING.rdoc +34 -0
- data/DEMOS.rdoc +267 -0
- data/HISTORY.rdoc +10 -0
- data/README.rdoc +70 -0
- data/lib/assay-testunit.rb +10 -0
- data/lib/assay-testunit.yml +52 -0
- data/lib/assay-testunit/assertions.rb +494 -0
- data/lib/assay/testunit.rb +1 -0
- metadata +100 -0
data/.ruby
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
---
|
2
|
+
source:
|
3
|
+
- meta
|
4
|
+
authors:
|
5
|
+
- name: Thomas Sawyer
|
6
|
+
email: transfire@gmail.com
|
7
|
+
copyrights:
|
8
|
+
- holder: Thomas Sawyer
|
9
|
+
year: '2012'
|
10
|
+
license: BSD-2-Clause
|
11
|
+
replacements: []
|
12
|
+
alternatives: []
|
13
|
+
requirements:
|
14
|
+
- name: assay
|
15
|
+
- name: detroit
|
16
|
+
groups:
|
17
|
+
- build
|
18
|
+
development: true
|
19
|
+
- name: qed
|
20
|
+
groups:
|
21
|
+
- test
|
22
|
+
development: true
|
23
|
+
dependencies: []
|
24
|
+
conflicts: []
|
25
|
+
repositories:
|
26
|
+
- uri: git@github.com:rubyworks/assay-testunit.git
|
27
|
+
scm: git
|
28
|
+
name: upstream
|
29
|
+
resources:
|
30
|
+
home: http://rubyworks.github.com/assay-testunit
|
31
|
+
docs: http://rubydoc.info/gems/assay-testunit
|
32
|
+
code: http://github.com/rubyworks/assay-testunit
|
33
|
+
mail: http://groups.google.com/groups/rubyworks-mailinglist
|
34
|
+
extra: {}
|
35
|
+
load_path:
|
36
|
+
- lib
|
37
|
+
revision: 0
|
38
|
+
created: '2012-01-18'
|
39
|
+
summary: TestUnit on Assay
|
40
|
+
title: Assay TestUnit
|
41
|
+
version: 0.1.0
|
42
|
+
name: assay-testunit
|
43
|
+
description: ! 'Assay TestUnit defines a set of TestUnit-compatible assertion methods
|
44
|
+
which
|
45
|
+
|
46
|
+
depend on Assay''s assertion classes. This allows developers to change
|
47
|
+
|
48
|
+
test frameworks without having to change a slew of previously
|
49
|
+
|
50
|
+
defined assertions.'
|
51
|
+
organization: Rubyworks
|
52
|
+
date: '2012-01-25'
|
data/.yardopts
ADDED
data/COPYING.rdoc
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
= COPYRIGHT
|
2
|
+
|
3
|
+
== NOTICES
|
4
|
+
|
5
|
+
=== Assay TestUnit
|
6
|
+
|
7
|
+
Copyright:: (c) 2012 Rubyworks
|
8
|
+
License:: BSD-2-Clause
|
9
|
+
Website:: http://rubyworks.github.com/assay-testunit
|
10
|
+
|
11
|
+
== LICENSES
|
12
|
+
|
13
|
+
=== BSD-2-Clause License
|
14
|
+
|
15
|
+
Redistribution and use in source and binary forms, with or without
|
16
|
+
modification, are permitted provided that the following conditions are met:
|
17
|
+
|
18
|
+
1. Redistributions of source code must retain the above copyright notice,
|
19
|
+
this list of conditions and the following disclaimer.
|
20
|
+
|
21
|
+
2. Redistributions in binary form must reproduce the above copyright
|
22
|
+
notice, this list of conditions and the following disclaimer in the
|
23
|
+
documentation and/or other materials provided with the distribution.
|
24
|
+
|
25
|
+
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
26
|
+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
27
|
+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
28
|
+
COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
29
|
+
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
30
|
+
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
31
|
+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
|
32
|
+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
33
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
34
|
+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
data/DEMOS.rdoc
ADDED
@@ -0,0 +1,267 @@
|
|
1
|
+
# Assertion Methods
|
2
|
+
|
3
|
+
To use the assertion methods, first require the library.
|
4
|
+
|
5
|
+
require 'assay/testunit'
|
6
|
+
|
7
|
+
Then include them into your test scope.
|
8
|
+
|
9
|
+
include ::Assay::Assertions
|
10
|
+
|
11
|
+
## assert_equal
|
12
|
+
|
13
|
+
assert_equal(1,1)
|
14
|
+
|
15
|
+
expect ::EqualAssay do
|
16
|
+
assert_equal(1,2)
|
17
|
+
end
|
18
|
+
|
19
|
+
assert_not_equal(1,2)
|
20
|
+
|
21
|
+
## assert_true
|
22
|
+
|
23
|
+
assert_true(true)
|
24
|
+
|
25
|
+
expect ::TrueAssay do
|
26
|
+
assert_true(false)
|
27
|
+
end
|
28
|
+
|
29
|
+
assert_not_true(false)
|
30
|
+
assert_not_true(nil)
|
31
|
+
|
32
|
+
## assert_false
|
33
|
+
|
34
|
+
assert_false(false)
|
35
|
+
|
36
|
+
expect ::FalseAssay do
|
37
|
+
assert_false(true)
|
38
|
+
end
|
39
|
+
|
40
|
+
assert_not_false(true)
|
41
|
+
assert_not_false(nil)
|
42
|
+
|
43
|
+
## assert_nil
|
44
|
+
|
45
|
+
assert_nil(nil)
|
46
|
+
|
47
|
+
expect ::NilAssay do
|
48
|
+
assert_nil(true)
|
49
|
+
end
|
50
|
+
|
51
|
+
assert_not_nil(true)
|
52
|
+
assert_not_nil(false)
|
53
|
+
|
54
|
+
## assert_in_delta
|
55
|
+
|
56
|
+
assert_in_delta(1, 1.5, 2)
|
57
|
+
|
58
|
+
expect ::WithinAssay do
|
59
|
+
assert_in_delta(1, 2.5, 1)
|
60
|
+
end
|
61
|
+
|
62
|
+
assert_not_in_delta(1, 2, 0.5)
|
63
|
+
|
64
|
+
## assert_in_epsilon
|
65
|
+
|
66
|
+
assert_in_epsilon(1, 1.5, 2)
|
67
|
+
assert_in_epsilon(0, 1.5, 2)
|
68
|
+
|
69
|
+
expect ::WithinAssay do
|
70
|
+
assert_in_epsilon(1, 2.5, 1)
|
71
|
+
end
|
72
|
+
|
73
|
+
assert_not_in_epsilon(1, 2.5, 1)
|
74
|
+
assert_not_in_epsilon(0, 2.5, 1)
|
75
|
+
|
76
|
+
## assert_match
|
77
|
+
|
78
|
+
assert_match(/a/, "abc")
|
79
|
+
|
80
|
+
expect ::MatchAssay do
|
81
|
+
assert_match(/x/, "abc")
|
82
|
+
end
|
83
|
+
|
84
|
+
assert_not_match(/a/, "bcd")
|
85
|
+
|
86
|
+
## assert_no_match
|
87
|
+
|
88
|
+
assert_no_match(/a/, "bcd")
|
89
|
+
|
90
|
+
expect ::NoMatchAssay do
|
91
|
+
assert_no_match(/a/, "abc")
|
92
|
+
end
|
93
|
+
|
94
|
+
## assert_empty
|
95
|
+
|
96
|
+
assert_empty([])
|
97
|
+
|
98
|
+
expect ::EmptyAssay do
|
99
|
+
assert_empty([1,2,3])
|
100
|
+
end
|
101
|
+
|
102
|
+
assert_not_empty([1,2,3])
|
103
|
+
|
104
|
+
## assert_include
|
105
|
+
|
106
|
+
assert_includes([1,2,3], 1)
|
107
|
+
|
108
|
+
expect ::IncludeAssay do
|
109
|
+
assert_includes([1,2,3], 4)
|
110
|
+
end
|
111
|
+
|
112
|
+
assert_not_includes([1,2,3], 4)
|
113
|
+
|
114
|
+
## assert_same
|
115
|
+
|
116
|
+
assert_same(:a, :a)
|
117
|
+
|
118
|
+
expect ::IdentityAssay do
|
119
|
+
assert_same("a", "a")
|
120
|
+
end
|
121
|
+
|
122
|
+
assert_not_same(:a, :b)
|
123
|
+
|
124
|
+
## assert_instance_of
|
125
|
+
|
126
|
+
assert_instance_of(Fixnum, 1)
|
127
|
+
|
128
|
+
expect ::InstanceAssay do
|
129
|
+
assert_instance_of(String, 1)
|
130
|
+
end
|
131
|
+
|
132
|
+
assert_not_instance_of(String, 1)
|
133
|
+
|
134
|
+
## assert_kind_of
|
135
|
+
|
136
|
+
assert_kind_of(Integer, 1)
|
137
|
+
|
138
|
+
expect ::KindAssay do
|
139
|
+
assert_kind_of(String, 1)
|
140
|
+
end
|
141
|
+
|
142
|
+
assert_not_kind_of(String, 1)
|
143
|
+
|
144
|
+
## assert_raise
|
145
|
+
|
146
|
+
assert_raise(ArgumentError){ raise ArgumentError }
|
147
|
+
|
148
|
+
expect ::RaiseAssay do
|
149
|
+
assert_raise(ArgumentError){ raise TypeError }
|
150
|
+
end
|
151
|
+
|
152
|
+
assert_not_raised(ArgumentError){ raise TypeError }
|
153
|
+
|
154
|
+
## assert_raise_kind_of
|
155
|
+
|
156
|
+
assert_raise_kind_of(StandardError){ raise }
|
157
|
+
|
158
|
+
expect ::RescueAssay do
|
159
|
+
assert_raise_kind_of(ArgumentError){ raise TypeError }
|
160
|
+
end
|
161
|
+
|
162
|
+
assert_raise_kind_of(Exception){ raise }
|
163
|
+
|
164
|
+
## assert_nothing_raised
|
165
|
+
|
166
|
+
assert_nothing_raised{ true }
|
167
|
+
assert_nothing_raised{ nil }
|
168
|
+
|
169
|
+
expect ::RescueAssay do
|
170
|
+
assert_nothing_raised{ raise }
|
171
|
+
end
|
172
|
+
|
173
|
+
## assert_respond_to
|
174
|
+
|
175
|
+
assert_respond_to("string", :upcase)
|
176
|
+
|
177
|
+
expect ::RespondAssay do
|
178
|
+
assert_respond_to("string", :not_a_method)
|
179
|
+
end
|
180
|
+
|
181
|
+
assert_not_respond_to("string", :not_a_method)
|
182
|
+
|
183
|
+
## assert_block
|
184
|
+
|
185
|
+
assert_block{ :ok }
|
186
|
+
|
187
|
+
expect ::ExecutionAssay do
|
188
|
+
assert_block{ raise }
|
189
|
+
end
|
190
|
+
|
191
|
+
## assert_throw
|
192
|
+
|
193
|
+
assert_throw(:foo){ throw :foo }
|
194
|
+
|
195
|
+
expect ::ThrowAssay do
|
196
|
+
assert_throw(:foo){ throw :bar }
|
197
|
+
end
|
198
|
+
|
199
|
+
assert_not_thrown(:foo){ throw :bar }
|
200
|
+
|
201
|
+
## assert_nothing_thrown
|
202
|
+
|
203
|
+
assert_nothing_thrown{ nil }
|
204
|
+
|
205
|
+
expect ::ThrowAssay do
|
206
|
+
assert_nothing_thrown{ throw :bar }
|
207
|
+
end
|
208
|
+
|
209
|
+
## assert_compare
|
210
|
+
|
211
|
+
assert_compare(1, :<, 2)
|
212
|
+
assert_compare(2, :>, 1)
|
213
|
+
assert_compare(1, :<=, 1)
|
214
|
+
assert_compare(1, :>=, 1)
|
215
|
+
assert_compare(1, :<=, 2)
|
216
|
+
assert_compare(2, :>=, 1)
|
217
|
+
assert_compare(1, :==, 1)
|
218
|
+
|
219
|
+
expect ArgumentError do
|
220
|
+
assert_compare(1, :<=>, 1)
|
221
|
+
end
|
222
|
+
|
223
|
+
## assert_operator
|
224
|
+
|
225
|
+
assert_operator([], :<<, 1)
|
226
|
+
|
227
|
+
## assert_predicate
|
228
|
+
|
229
|
+
assert_predicate(10, :even?)
|
230
|
+
|
231
|
+
assert_not_predicate(10, :odd?)
|
232
|
+
|
233
|
+
## assert_path_exist
|
234
|
+
|
235
|
+
assert_path_exist(__FILE__)
|
236
|
+
|
237
|
+
assert_path_not_exist(__FILE__ + '.foobar')
|
238
|
+
|
239
|
+
## assert_boolean
|
240
|
+
|
241
|
+
assert_boolean(true)
|
242
|
+
assert_boolean(false)
|
243
|
+
|
244
|
+
assert_not_boolean(nil)
|
245
|
+
|
246
|
+
## assert_alike
|
247
|
+
|
248
|
+
assert_alike(1,1)
|
249
|
+
assert_alike(1,1.0)
|
250
|
+
|
251
|
+
expect ::LikeAssay do
|
252
|
+
assert_alike(1,"1")
|
253
|
+
end
|
254
|
+
|
255
|
+
assert_not_alike(1,"1")
|
256
|
+
|
257
|
+
## assert_equivalent
|
258
|
+
|
259
|
+
assert_equivalent(1, 1)
|
260
|
+
|
261
|
+
expect ::EqualityAssay do
|
262
|
+
assert_equivalent(1, 1.0)
|
263
|
+
end
|
264
|
+
|
265
|
+
assert_not_equivalent(1, 1.0)
|
266
|
+
|
267
|
+
|
data/HISTORY.rdoc
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
= Assay TestUnit
|
2
|
+
|
3
|
+
{Homepage}[http://rubyworks.github.com/assay-testunit] /
|
4
|
+
{Report Issue}[http://github.com/rubyworks/assay-testunit/issues] /
|
5
|
+
{Source Code}[http://github.com/rubyworks/assay-testunit] /
|
6
|
+
{Mailing List}[http://groups.google.com/group/rubyworks-mailinglist]
|
7
|
+
|
8
|
+
|
9
|
+
== DESCRIPTION
|
10
|
+
|
11
|
+
Assay TestUnit is a compatibility layer for using TestUnit's assertion
|
12
|
+
notation with the {Assay}[http://rubyworks.github.com/assay]
|
13
|
+
assertions framework.
|
14
|
+
|
15
|
+
Assay TestUnit defines a set of TestUnit-compatible assertion methods
|
16
|
+
which depend on Assay's assertion classes. This allows developers to
|
17
|
+
change test frameworks without having to change a slew of previously
|
18
|
+
defined assertions calls.
|
19
|
+
|
20
|
+
Assay defines assertions in the same way that Ruby defines exceptions.
|
21
|
+
An assertion is nothing more that an extended Exception subclass.
|
22
|
+
Assay provides a complete set of these assertion classes for all
|
23
|
+
common assertion needs. See {Assay}[http://rubyworks.github.com/assay]
|
24
|
+
project for more information on this library.
|
25
|
+
|
26
|
+
|
27
|
+
== SYNOPSIS
|
28
|
+
|
29
|
+
Simply require the `assay/testunit` script, and include the `Assay::Assertions`
|
30
|
+
mixin module into your test scope, where your test framework requires it (which
|
31
|
+
may be as simple as the toplevel namespace).
|
32
|
+
|
33
|
+
require 'assay/testunit'
|
34
|
+
|
35
|
+
include Assay::Assertions
|
36
|
+
|
37
|
+
Now assertions can be made just as if you were using TestUnit.
|
38
|
+
|
39
|
+
assert_equal(10, 5+5)
|
40
|
+
|
41
|
+
assert_kind_of(Integer, 10)
|
42
|
+
|
43
|
+
|
44
|
+
== LIMITATIONS
|
45
|
+
|
46
|
+
Compatibility is not 100%, though it is very close. Compatibility will improve
|
47
|
+
with future releases. Please feel _obligated_ to submit a patch if you need a
|
48
|
+
missing a feature ;)
|
49
|
+
|
50
|
+
Assay TestUnit is also a Ruby 1.9+ only library.
|
51
|
+
|
52
|
+
|
53
|
+
== INSTALLATION
|
54
|
+
|
55
|
+
To install with RubyGems simply open a console and type:
|
56
|
+
|
57
|
+
$ gem install assay-testunit
|
58
|
+
|
59
|
+
Site installation with the tarball can be done with Ruby Setup
|
60
|
+
(gem install setup). See http://rubyworks.github.com/setup.
|
61
|
+
|
62
|
+
|
63
|
+
== COPYRIGHTS
|
64
|
+
|
65
|
+
Copyright (c) 2012 Rubyworks
|
66
|
+
|
67
|
+
This program is distributed under the terms of the *BSD-2-Clause* license.
|
68
|
+
|
69
|
+
See COPYING.rdoc file for details.
|
70
|
+
|
@@ -0,0 +1,52 @@
|
|
1
|
+
---
|
2
|
+
source:
|
3
|
+
- meta
|
4
|
+
authors:
|
5
|
+
- name: Thomas Sawyer
|
6
|
+
email: transfire@gmail.com
|
7
|
+
copyrights:
|
8
|
+
- holder: Thomas Sawyer
|
9
|
+
year: '2012'
|
10
|
+
license: BSD-2-Clause
|
11
|
+
replacements: []
|
12
|
+
alternatives: []
|
13
|
+
requirements:
|
14
|
+
- name: assay
|
15
|
+
- name: detroit
|
16
|
+
groups:
|
17
|
+
- build
|
18
|
+
development: true
|
19
|
+
- name: qed
|
20
|
+
groups:
|
21
|
+
- test
|
22
|
+
development: true
|
23
|
+
dependencies: []
|
24
|
+
conflicts: []
|
25
|
+
repositories:
|
26
|
+
- uri: git@github.com:rubyworks/assay-testunit.git
|
27
|
+
scm: git
|
28
|
+
name: upstream
|
29
|
+
resources:
|
30
|
+
home: http://rubyworks.github.com/assay-testunit
|
31
|
+
docs: http://rubydoc.info/gems/assay-testunit
|
32
|
+
code: http://github.com/rubyworks/assay-testunit
|
33
|
+
mail: http://groups.google.com/groups/rubyworks-mailinglist
|
34
|
+
extra: {}
|
35
|
+
load_path:
|
36
|
+
- lib
|
37
|
+
revision: 0
|
38
|
+
created: '2012-01-18'
|
39
|
+
summary: TestUnit on Assay
|
40
|
+
title: Assay TestUnit
|
41
|
+
version: 0.1.0
|
42
|
+
name: assay-testunit
|
43
|
+
description: ! 'Assay TestUnit defines a set of TestUnit-compatible assertion methods
|
44
|
+
which
|
45
|
+
|
46
|
+
depend on Assay''s assertion classes. This allows developers to change
|
47
|
+
|
48
|
+
test frameworks without having to change a slew of previously
|
49
|
+
|
50
|
+
defined assertions.'
|
51
|
+
organization: Rubyworks
|
52
|
+
date: '2012-01-25'
|
@@ -0,0 +1,494 @@
|
|
1
|
+
module Assay; end
|
2
|
+
module Assay::TestUnit
|
3
|
+
|
4
|
+
# This module holds the Test::Unit assertion methods for Test::Unit
|
5
|
+
# compatibility.
|
6
|
+
#
|
7
|
+
# While it does not provide 100% of Test::Unit assertions at the moment,
|
8
|
+
# compatibility will improved with upcoming releases.
|
9
|
+
#
|
10
|
+
# @see http://test-unit.rubyforge.org/test-unit/en/
|
11
|
+
#
|
12
|
+
# @todo Should we adjust error message to be like Test::Units ?
|
13
|
+
#
|
14
|
+
module Assertions
|
15
|
+
|
16
|
+
#
|
17
|
+
#def assert_alias_method(object, alias_name, original_name, message = nil)
|
18
|
+
#end
|
19
|
+
|
20
|
+
#
|
21
|
+
# Passes if actual is like expected, where `like` means satisfyin any one
|
22
|
+
# of `#===`, `#==`, `#eql?` or `#equal?` calls.
|
23
|
+
#
|
24
|
+
# This is not strictly a Test::Unit assertion but is added here to cover
|
25
|
+
# all of Assay's availabe assertion classes.
|
26
|
+
#
|
27
|
+
def assert_alike(exp, act, msg=nil)
|
28
|
+
LikeAssay.assert!(act, exp, :message=>msg, :backtrace=>caller)
|
29
|
+
end
|
30
|
+
|
31
|
+
#
|
32
|
+
# Passes if actual is NOT like expected, where `like` means satisfyin any
|
33
|
+
# one of `#===`, `#==`, `#eql?` or `#equal?` calls.
|
34
|
+
#
|
35
|
+
def assert_not_alike(exp, act, msg=nil)
|
36
|
+
LikeAssay.refute!(act, exp, :message=>msg, :backtrace=>caller)
|
37
|
+
end
|
38
|
+
|
39
|
+
#
|
40
|
+
#
|
41
|
+
#
|
42
|
+
def assert_block(message="assert_block failed.", &block)
|
43
|
+
ExecutionAssay.assert!(:message=>message, &block)
|
44
|
+
end
|
45
|
+
|
46
|
+
#
|
47
|
+
# Passes if `boolean` is either `true` or `false`.
|
48
|
+
#
|
49
|
+
def assert_boolean(boolean, message=nil)
|
50
|
+
BooleanAssay.assert!(boolean, :message=>message)
|
51
|
+
end
|
52
|
+
|
53
|
+
#
|
54
|
+
# Passes if `boolean` is not either `true` or `false`.
|
55
|
+
#
|
56
|
+
def assert_not_boolean(boolean, message=nil)
|
57
|
+
BooleanAssay.refute!(boolean, :message=>message)
|
58
|
+
end
|
59
|
+
|
60
|
+
# Passes if `object` satisify compaision by `operator`.
|
61
|
+
#
|
62
|
+
def assert_compare(receiver, operator, operand, message=nil)
|
63
|
+
case operator.to_sym
|
64
|
+
when :<
|
65
|
+
LessAssay.assert!(receiver, operand, :message=>message, :backtrace=>caller)
|
66
|
+
when :<=
|
67
|
+
LessEqualAssay.assert!(receiver, operand, :message=>message, :backtrace=>caller)
|
68
|
+
when :>
|
69
|
+
MoreAssay.assert!(receiver, operand, :message=>message, :backtrace=>caller)
|
70
|
+
when :>=
|
71
|
+
MoreEqualAssay.assert!(receiver, operand, :message=>message, :backtrace=>caller)
|
72
|
+
when :==
|
73
|
+
EqualAssay.assert!(operand, receiver, :message=>message, :backtrace=>caller)
|
74
|
+
else
|
75
|
+
raise ArgumentError, "comparision operator must be one of <, <=, >, >= or '=='"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
#
|
80
|
+
#
|
81
|
+
#
|
82
|
+
#def assert_const_defined(object, constant_name, message=nil)
|
83
|
+
#end
|
84
|
+
|
85
|
+
#
|
86
|
+
#
|
87
|
+
#
|
88
|
+
#def assert_not_const_defined(object, constant_name, message=nil)
|
89
|
+
#end
|
90
|
+
|
91
|
+
# Passes if object is empty.
|
92
|
+
#
|
93
|
+
# assert_empty(object)
|
94
|
+
#
|
95
|
+
def assert_empty(exp, msg=nil)
|
96
|
+
EmptyAssay.assert!(exp, :message=>msg, :backtrace=>caller)
|
97
|
+
end
|
98
|
+
|
99
|
+
# Passes if object is not empty.
|
100
|
+
#
|
101
|
+
# refute_empty(object)
|
102
|
+
#
|
103
|
+
def assert_not_empty(exp, msg=nil)
|
104
|
+
EmptyAssay.refute!(exp, :message=>msg, :backtrace=>caller)
|
105
|
+
end
|
106
|
+
|
107
|
+
# Passes if expected == +actual.
|
108
|
+
#
|
109
|
+
# Note that the ordering of arguments is important,
|
110
|
+
# since a helpful error message is generated when this
|
111
|
+
# one fails that tells you the values of expected and actual.
|
112
|
+
#
|
113
|
+
# assert_equal 'MY STRING', 'my string'.upcase
|
114
|
+
#
|
115
|
+
def assert_equal(exp, act, msg=nil)
|
116
|
+
EqualAssay.assert!(act, exp, :message=>msg, :backtrace=>caller)
|
117
|
+
end
|
118
|
+
|
119
|
+
# Passes if expected != actual
|
120
|
+
#
|
121
|
+
# assert_not_equal 'some string', 5
|
122
|
+
#
|
123
|
+
def assert_not_equal(exp, act, msg=nil)
|
124
|
+
EqualAssay.refute!(act, exp, :message=>msg, :backtrace=>caller)
|
125
|
+
end
|
126
|
+
|
127
|
+
#
|
128
|
+
#def assert_fail_assertion(message = nil)
|
129
|
+
#end
|
130
|
+
|
131
|
+
#
|
132
|
+
# Passed if object is +false+.
|
133
|
+
#
|
134
|
+
# assert_false(false)
|
135
|
+
#
|
136
|
+
def assert_false(exp, msg=nil)
|
137
|
+
FalseAssay.assert!(exp, :message=>msg, :backtrace=>caller)
|
138
|
+
end
|
139
|
+
|
140
|
+
#
|
141
|
+
# Passed if object is not +false+.
|
142
|
+
#
|
143
|
+
# assert_not_false(false)
|
144
|
+
#
|
145
|
+
def assert_not_false(exp, msg=nil)
|
146
|
+
FalseAssay.refute!(exp, :message=>msg, :backtrace=>caller)
|
147
|
+
end
|
148
|
+
|
149
|
+
#
|
150
|
+
# Passes if expected and actual are equal within delta tolerance.
|
151
|
+
#
|
152
|
+
# assert_in_delta 0.05, (50000.0 / 10**6), 0.00001
|
153
|
+
#
|
154
|
+
def assert_in_delta(exp, act, delta, msg=nil)
|
155
|
+
WithinAssay.assert!(act, exp, delta, :message=>msg, :backtrace=>caller)
|
156
|
+
end
|
157
|
+
|
158
|
+
#
|
159
|
+
# Passes if expected and actual are equal not within delta tolerance.
|
160
|
+
#
|
161
|
+
# assert_not_in_delta 0.05, (50000.0 / 10**6), 0.00001
|
162
|
+
#
|
163
|
+
def assert_not_in_delta(exp, act, delta, msg=nil)
|
164
|
+
WithinAssay.refute!(act, exp, delta, :message=>msg, :backtrace=>caller)
|
165
|
+
end
|
166
|
+
|
167
|
+
#
|
168
|
+
# Passes if `exp` and `act` are within `epsilon`.
|
169
|
+
#
|
170
|
+
def assert_in_epsilon(exp, act, epsilon=0.001, message=nil)
|
171
|
+
exp = exp.to_f
|
172
|
+
if exp.zero?
|
173
|
+
delta = epsilon.to_f ** 2
|
174
|
+
else
|
175
|
+
delta = exp * epsilon.to_f
|
176
|
+
end
|
177
|
+
WithinAssay.assert!(act, exp, delta, :message=>message, :backtrace=>caller)
|
178
|
+
end
|
179
|
+
|
180
|
+
#
|
181
|
+
# Passes if `exp` and `act` are NOT within `epsilon`.
|
182
|
+
#
|
183
|
+
def assert_not_in_epsilon(exp, act, epsilon=0.001, message=nil)
|
184
|
+
exp = exp.to_f
|
185
|
+
if exp.zero?
|
186
|
+
delta = epsilon.to_f ** 2
|
187
|
+
else
|
188
|
+
delta = exp * epsilon.to_f
|
189
|
+
end
|
190
|
+
WithinAssay.refute!(act, exp, delta, :message=>message, :backtrace=>caller)
|
191
|
+
end
|
192
|
+
|
193
|
+
#
|
194
|
+
# Passes if `collection` contains `member`.
|
195
|
+
#
|
196
|
+
def assert_includes(collection, member, message=nil)
|
197
|
+
IncludeAssay.assert!(collection, member, :message=>message, :backtrace=>caller)
|
198
|
+
end
|
199
|
+
|
200
|
+
#
|
201
|
+
# Passes if `collection` does not contain `member`.
|
202
|
+
#
|
203
|
+
def assert_not_includes(collection, member, message=nil)
|
204
|
+
IncludeAssay.refute!(collection, member, :message=>message, :backtrace=>caller)
|
205
|
+
end
|
206
|
+
|
207
|
+
#
|
208
|
+
# Passes if object is an instance of class.
|
209
|
+
#
|
210
|
+
# assert_instance_of(String, 'foo')
|
211
|
+
#
|
212
|
+
def assert_instance_of(cls, obj, msg=nil)
|
213
|
+
InstanceAssay.assert!(obj, cls, :message=>msg, :backtrace=>caller)
|
214
|
+
end
|
215
|
+
|
216
|
+
#
|
217
|
+
# Passes if object is not an instance of class.
|
218
|
+
#
|
219
|
+
# assert_not_instance_of(String, 500)
|
220
|
+
#
|
221
|
+
def assert_not_instance_of(cls, obj, msg=nil)
|
222
|
+
InstanceAssay.refute!(obj, cls, :message=>msg, :backtrace=>caller)
|
223
|
+
end
|
224
|
+
|
225
|
+
#
|
226
|
+
# Passes if object .kind_of? klass
|
227
|
+
#
|
228
|
+
# assert_kind_of(Object, 'foo')
|
229
|
+
#
|
230
|
+
def assert_kind_of(cls, obj, msg=nil)
|
231
|
+
KindAssay.assert!(obj, cls, :message=>msg, :backtrace=>caller)
|
232
|
+
end
|
233
|
+
|
234
|
+
#
|
235
|
+
# Passes if object .kind_of? klass
|
236
|
+
#
|
237
|
+
# assert_not_kind_of(Object, 'foo')
|
238
|
+
#
|
239
|
+
def assert_not_kind_of(cls, obj, msg=nil)
|
240
|
+
KindAssay.refute!(obj, cls, :message=>msg, :backtrace=>caller)
|
241
|
+
end
|
242
|
+
|
243
|
+
# Passes if object matches pattern using `#=~` method.
|
244
|
+
#
|
245
|
+
# assert_match(/\d+/, 'five, 6, seven')
|
246
|
+
#
|
247
|
+
def assert_match(pattern, string, msg=nil)
|
248
|
+
MatchAssay.assert!(string, pattern, :message=>msg, :backtrace=>caller)
|
249
|
+
end
|
250
|
+
|
251
|
+
# Passes if object does not match pattern using `#=~` method.
|
252
|
+
#
|
253
|
+
# assert_no_match(/two/, 'one 2 three')
|
254
|
+
#
|
255
|
+
def assert_not_match(pattern, string, msg=nil)
|
256
|
+
MatchAssay.refute!(string, pattern, :message=>msg, :backtrace=>caller)
|
257
|
+
end
|
258
|
+
|
259
|
+
# Passes if object has no match pattern using `#!~` method.
|
260
|
+
#
|
261
|
+
# assert_no_match(/two/, 'one 2 three')
|
262
|
+
#
|
263
|
+
def assert_no_match(pattern, string, msg=nil)
|
264
|
+
NoMatchAssay.assert!(string, pattern, :message=>msg, :backtrace=>caller)
|
265
|
+
end
|
266
|
+
|
267
|
+
## Passes if object has a match pattern using `#!~` method.
|
268
|
+
##
|
269
|
+
## assert_not_no_match(/two/, 'one two three')
|
270
|
+
##
|
271
|
+
#def assert_not_no_match(pattern, string, msg=nil)
|
272
|
+
# NoMatchAssay.refute!(string, pattern, :message=>msg, :backtrace=>caller)
|
273
|
+
#end
|
274
|
+
|
275
|
+
# Passed if object is +nil+.
|
276
|
+
#
|
277
|
+
# assert_nil(nil)
|
278
|
+
#
|
279
|
+
def assert_nil(exp, msg=nil)
|
280
|
+
NilAssay.assert!(exp, :message=>msg, :backtrace=>caller)
|
281
|
+
end
|
282
|
+
|
283
|
+
# Passed if object is not +nil+.
|
284
|
+
#
|
285
|
+
# assert_not_nil(true)
|
286
|
+
#
|
287
|
+
def assert_not_nil(exp, msg=nil)
|
288
|
+
NilAssay.refute!(exp, :message=>msg, :backtrace=>caller)
|
289
|
+
end
|
290
|
+
|
291
|
+
#
|
292
|
+
#
|
293
|
+
#
|
294
|
+
def assert_predicate(object, predicate, message = nil)
|
295
|
+
ExecutionAssay.assert!(:message=>message) do
|
296
|
+
object.__send__(predicate)
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
300
|
+
#
|
301
|
+
#
|
302
|
+
#
|
303
|
+
def assert_not_predicate(object, predicate, message = nil)
|
304
|
+
ExecutionAssay.refute!(:message=>message) do
|
305
|
+
object.__send__(predicate)
|
306
|
+
end
|
307
|
+
end
|
308
|
+
|
309
|
+
#
|
310
|
+
# Passes if +object+ respond_to? +methods+.
|
311
|
+
#
|
312
|
+
# assert_respond_to 'bugbear', :slice
|
313
|
+
#
|
314
|
+
def assert_respond_to(reciever, method, msg=nil)
|
315
|
+
RespondAssay.assert!(reciever, method, :message=>msg, :backtrace=>caller)
|
316
|
+
end
|
317
|
+
alias_method :assert_responds_to, :assert_respond_to
|
318
|
+
|
319
|
+
#
|
320
|
+
# Passes if +object+ does not respond_to? +methods+.
|
321
|
+
#
|
322
|
+
# assert_not_respond_to 'bugbear', :slice
|
323
|
+
#
|
324
|
+
def assert_not_respond_to(reciever, method, msg=nil)
|
325
|
+
RespondAssay.refute!(reciever, method, :message=>msg, :backtrace=>caller)
|
326
|
+
end
|
327
|
+
|
328
|
+
# Passes if +expected+ .eql? +actual+.
|
329
|
+
#
|
330
|
+
# Note that the ordering of arguments is important,
|
331
|
+
# since a helpful error message is generated when this
|
332
|
+
# one fails that tells you the values of expected and actual.
|
333
|
+
#
|
334
|
+
# assert_equivalent 'MY STRING', 'my string'.upcase
|
335
|
+
#
|
336
|
+
def assert_equivalent(exp, act, msg=nil)
|
337
|
+
EqualityAssay.assert!(act, exp, :message=>msg, :backtrace=>caller)
|
338
|
+
end
|
339
|
+
|
340
|
+
# Passes if +criterion+ is NOT equivalent to +actual+ as tested using `#eql?`.
|
341
|
+
#
|
342
|
+
# assert_not_equivalent 1, 1.0
|
343
|
+
#
|
344
|
+
def assert_not_equivalent(criterion, act, msg=nil)
|
345
|
+
EqualityAssay.refute!(act, criterion, :message=>msg, :backtrace=>caller)
|
346
|
+
end
|
347
|
+
|
348
|
+
#
|
349
|
+
#
|
350
|
+
# TODO: Is this supposed to be restricted in some way?
|
351
|
+
def assert_operator(receiver, operator, operand, message=nil)
|
352
|
+
ExecutionAssay.assert!(:message=>message, :backtrace=>caller) do
|
353
|
+
receiver.__send__(operator, operand)
|
354
|
+
end
|
355
|
+
end
|
356
|
+
|
357
|
+
#
|
358
|
+
#
|
359
|
+
#
|
360
|
+
def assert_path_exist(path, message=nil)
|
361
|
+
PathAssay.assert!(path, :message=>message, :backtrace=>caller)
|
362
|
+
end
|
363
|
+
|
364
|
+
#
|
365
|
+
#
|
366
|
+
#
|
367
|
+
def assert_path_not_exist(path, message=nil)
|
368
|
+
PathAssay.refute!(path, :message=>message, :backtrace=>caller)
|
369
|
+
end
|
370
|
+
|
371
|
+
#
|
372
|
+
# Passes if the block raises a given exception.
|
373
|
+
#
|
374
|
+
# assert_raise RuntimeError do
|
375
|
+
# raise 'Boom!!!'
|
376
|
+
# end
|
377
|
+
#
|
378
|
+
def assert_raise(exception, message=nil, &block)
|
379
|
+
RaiseAssay.assert!(exception, :message=>message, :backtrace=>caller, &block)
|
380
|
+
end
|
381
|
+
|
382
|
+
alias_method :assert_raises, :assert_raise
|
383
|
+
|
384
|
+
#
|
385
|
+
# Passes if the block *does not* raise a given exceptions.
|
386
|
+
#
|
387
|
+
# assert_not_raised IOError do
|
388
|
+
# raise 'Boom!!!'
|
389
|
+
# end
|
390
|
+
#
|
391
|
+
def assert_not_raised(exception, message=nil, &block) #:yeild:
|
392
|
+
RaiseAssay.refute!(exception, :message=>message, :backtrace=>caller, &block)
|
393
|
+
end
|
394
|
+
|
395
|
+
#
|
396
|
+
# Passes if the block yields successfully.
|
397
|
+
#
|
398
|
+
# assert_nothing_raised "Couldn't do the thing" do
|
399
|
+
# do_the_thing
|
400
|
+
# end
|
401
|
+
#
|
402
|
+
def assert_nothing_raised(message=nil, &block)
|
403
|
+
RescueAssay.refute!(Exception, :message=>message, :backtrace=>caller, &block)
|
404
|
+
end
|
405
|
+
|
406
|
+
#
|
407
|
+
# Passes if the block raises a given exception.
|
408
|
+
#
|
409
|
+
# assert_raise_kind_of RuntimeError do
|
410
|
+
# raise 'Boom!!!'
|
411
|
+
# end
|
412
|
+
#
|
413
|
+
def assert_raise_kind_of(exception_class, message=nil, &block)
|
414
|
+
RescueAssay.assert!(exception_class, :message=>message, :backtrace=>caller, &block)
|
415
|
+
end
|
416
|
+
|
417
|
+
#
|
418
|
+
#def assert_raise_message(*args, &block)
|
419
|
+
#end
|
420
|
+
|
421
|
+
#
|
422
|
+
# Passes if actual is the same exact object as expected.
|
423
|
+
#
|
424
|
+
# assert_same(object, object)
|
425
|
+
#
|
426
|
+
def assert_same(exp, act, msg=nil)
|
427
|
+
IdentityAssay.assert!(act, exp, :message=>msg, :backtrace=>caller)
|
428
|
+
end
|
429
|
+
|
430
|
+
#
|
431
|
+
# Passes if actual is not the same exact object as expected.
|
432
|
+
#
|
433
|
+
# assert_not_same(object, other)
|
434
|
+
#
|
435
|
+
def assert_not_same(exp, act, msg=nil)
|
436
|
+
IdentityAssay.refute!(act, exp, :message=>msg, :backtrace=>caller)
|
437
|
+
end
|
438
|
+
|
439
|
+
#
|
440
|
+
#
|
441
|
+
#
|
442
|
+
#def assert_send(send_array, message=nil)
|
443
|
+
#end
|
444
|
+
|
445
|
+
#
|
446
|
+
# Passes if the block throws `expected` object.
|
447
|
+
#
|
448
|
+
# assert_throw :done do
|
449
|
+
# throw :done
|
450
|
+
# end
|
451
|
+
#
|
452
|
+
def assert_throw(expected, msg=nil, &blk)
|
453
|
+
ThrowAssay.assert!(expected, :message=>msg, :backtrace=>caller, &blk)
|
454
|
+
end
|
455
|
+
|
456
|
+
alias_method :assert_throws, :assert_throw
|
457
|
+
|
458
|
+
#
|
459
|
+
# Passes if the block does not throws `expected` object.
|
460
|
+
#
|
461
|
+
# assert_not_thrown :done do
|
462
|
+
# throw :chimp
|
463
|
+
# end
|
464
|
+
#
|
465
|
+
def assert_not_thrown(expected, msg=nil, &blk)
|
466
|
+
ThrowAssay.refute!(expected, :message=>msg, :backtrace=>caller, &blk)
|
467
|
+
end
|
468
|
+
|
469
|
+
#
|
470
|
+
#
|
471
|
+
#
|
472
|
+
def assert_nothing_thrown(message=nil, &blk)
|
473
|
+
ThrowAssay.refute!(nil, :message=>message, &blk)
|
474
|
+
end
|
475
|
+
|
476
|
+
#
|
477
|
+
# Passed if object is +true+.
|
478
|
+
#
|
479
|
+
def assert_true(exp, msg=nil)
|
480
|
+
TrueAssay.assert!(exp, :message=>msg, :backtrace=>caller)
|
481
|
+
end
|
482
|
+
|
483
|
+
#
|
484
|
+
# Passed if object is not +true+.
|
485
|
+
#
|
486
|
+
# assert_not_true(false)
|
487
|
+
#
|
488
|
+
def assert_not_true(exp, msg=nil)
|
489
|
+
TrueAssay.refute!(exp, :message=>msg, :backtrace=>caller)
|
490
|
+
end
|
491
|
+
|
492
|
+
end
|
493
|
+
|
494
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'assay-testunit'
|
metadata
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: assay-testunit
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Thomas Sawyer
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-01-26 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: assay
|
16
|
+
requirement: &12135040 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *12135040
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: detroit
|
27
|
+
requirement: &12125400 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *12125400
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: qed
|
38
|
+
requirement: &12115700 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *12115700
|
47
|
+
description: ! 'Assay TestUnit defines a set of TestUnit-compatible assertion methods
|
48
|
+
which
|
49
|
+
|
50
|
+
depend on Assay''s assertion classes. This allows developers to change
|
51
|
+
|
52
|
+
test frameworks without having to change a slew of previously
|
53
|
+
|
54
|
+
defined assertions.'
|
55
|
+
email:
|
56
|
+
- transfire@gmail.com
|
57
|
+
executables: []
|
58
|
+
extensions: []
|
59
|
+
extra_rdoc_files:
|
60
|
+
- HISTORY.rdoc
|
61
|
+
- DEMOS.rdoc
|
62
|
+
- README.rdoc
|
63
|
+
- COPYING.rdoc
|
64
|
+
files:
|
65
|
+
- .ruby
|
66
|
+
- .yardopts
|
67
|
+
- lib/assay/testunit.rb
|
68
|
+
- lib/assay-testunit/assertions.rb
|
69
|
+
- lib/assay-testunit.rb
|
70
|
+
- lib/assay-testunit.yml
|
71
|
+
- HISTORY.rdoc
|
72
|
+
- DEMOS.rdoc
|
73
|
+
- README.rdoc
|
74
|
+
- COPYING.rdoc
|
75
|
+
homepage: http://rubyworks.github.com/assay-testunit
|
76
|
+
licenses:
|
77
|
+
- BSD-2-Clause
|
78
|
+
post_install_message:
|
79
|
+
rdoc_options: []
|
80
|
+
require_paths:
|
81
|
+
- lib
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
none: false
|
84
|
+
requirements:
|
85
|
+
- - ! '>='
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
requirements: []
|
95
|
+
rubyforge_project:
|
96
|
+
rubygems_version: 1.8.10
|
97
|
+
signing_key:
|
98
|
+
specification_version: 3
|
99
|
+
summary: TestUnit on Assay
|
100
|
+
test_files: []
|