kintama 0.1.12 → 0.1.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/kintama/assertions.rb +36 -1
- data/test/integration/automatic_running_test.rb +1 -1
- data/test/integration/line_based_running_test.rb +1 -1
- data/test/test_helper.rb +3 -4
- data/test/unit/assertions_test.rb +43 -2
- data/test/unit/context_test.rb +1 -1
- data/test/unit/runner_test.rb +1 -1
- data/test/unit/test_and_subcontext_access_test.rb +1 -1
- data/test/usage/08_start_and_finish_test.rb +10 -2
- metadata +19 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 89d410c25c98282d6a3f2e566a49bad89748fb19
|
4
|
+
data.tar.gz: 73b36955b5f69912da853293ec30c5661fcaa03b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6f06b7b88c56ea57f0bd65fe5c260daa6cbe54fad79f078e5105fd9c2e6db63070b25487bb1217a88486c07880d2d31b7d59daaf98c8ac3e0b6265cd99be3f2
|
7
|
+
data.tar.gz: ca6e19d9b7649cd34467838bfe2a33a5930774c71514e0e551121e9a550f58e5f9f45fc59a81f2472fa95b460f2e0e69764ff0956a642e84d56cf9fcc88bb6e1
|
data/README.md
CHANGED
@@ -66,7 +66,7 @@ These will all be very familiar to most people who are already users of [shoulda
|
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
69
|
-
Simple, right? Note that we don't need an outer subclass of `Test::Unit::TestCase`; it's nice to lose that noise, but otherwise so far so same-old-same-old. That's kind-of the point. Anyway, here's what you get when you run this:
|
69
|
+
Simple, right? Note that we don't need an outer subclass of `Minitest::Test` or `Test::Unit::TestCase`; it's nice to lose that noise, but otherwise so far so same-old-same-old. That's kind-of the point. Anyway, here's what you get when you run this:
|
70
70
|
|
71
71
|
A thing
|
72
72
|
should act like a thing: F
|
data/lib/kintama/assertions.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require "set"
|
2
|
+
require "stringio"
|
2
3
|
|
3
4
|
module Kintama
|
4
5
|
module Assertions
|
@@ -30,6 +31,10 @@ module Kintama
|
|
30
31
|
assert (string =~ regexp), message
|
31
32
|
end
|
32
33
|
|
34
|
+
def assert_no_match(regexp, string, message="expected #{string.inspect} not to match #{regexp.inspect}")
|
35
|
+
assert !(string =~ regexp), message
|
36
|
+
end
|
37
|
+
|
33
38
|
def assert_kind_of(klass, thing, message="should be a kind of #{klass}")
|
34
39
|
assert thing.is_a?(klass), message
|
35
40
|
end
|
@@ -66,5 +71,35 @@ module Kintama
|
|
66
71
|
ensure
|
67
72
|
raise Kintama::TestFailure, message unless raised
|
68
73
|
end
|
74
|
+
|
75
|
+
def assert_output(expected, message="Expected output to match #{expected.inspect}", &block)
|
76
|
+
output = capture_output(&block).read.strip
|
77
|
+
if expected.is_a?(Regexp)
|
78
|
+
assert_match expected, output, message
|
79
|
+
else
|
80
|
+
assert_equal expected, output, message
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def assert_not_output(not_expected, message="Expected output not to match #{not_expected.inspect}", &block)
|
85
|
+
output = capture_output(&block).read.strip
|
86
|
+
if not_expected.is_a?(Regexp)
|
87
|
+
assert_no_match not_expected, output, message
|
88
|
+
else
|
89
|
+
assert_not_equal not_expected, output, message
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
private
|
94
|
+
|
95
|
+
def capture_output(&block)
|
96
|
+
out = StringIO.new
|
97
|
+
$stdout = out
|
98
|
+
yield
|
99
|
+
out.rewind
|
100
|
+
return out
|
101
|
+
ensure
|
102
|
+
$stdout = STDOUT
|
103
|
+
end
|
69
104
|
end
|
70
|
-
end
|
105
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
|
2
1
|
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
|
3
|
-
require 'test/unit'
|
4
2
|
require 'bundler/setup'
|
3
|
+
require 'minitest/autorun'
|
5
4
|
|
6
5
|
ENV["KINTAMA_EXPLICITLY_DONT_RUN"] = "true"
|
7
6
|
require 'kintama'
|
@@ -9,7 +8,7 @@ require 'kintama'
|
|
9
8
|
require 'stringio'
|
10
9
|
require 'mocha/setup'
|
11
10
|
|
12
|
-
class Test
|
11
|
+
class Minitest::Test
|
13
12
|
def setup
|
14
13
|
Kintama.reset
|
15
14
|
end
|
@@ -45,7 +44,7 @@ class Test::Unit::TestCase
|
|
45
44
|
end
|
46
45
|
end
|
47
46
|
|
48
|
-
class KintamaIntegrationTest < Test
|
47
|
+
class KintamaIntegrationTest < Minitest::Test
|
49
48
|
class << self
|
50
49
|
def reporter_class
|
51
50
|
@reporter_class || Kintama::Reporter::Verbose
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'test_helper'
|
2
2
|
|
3
|
-
class AssertionsTest < Test
|
3
|
+
class AssertionsTest < Minitest::Test
|
4
4
|
|
5
5
|
class PseudoTest
|
6
6
|
include Kintama::Assertions
|
@@ -65,6 +65,11 @@ class AssertionsTest < Test::Unit::TestCase
|
|
65
65
|
assert_failed(%|expected "blah" to match /mm/|) { @test.assert_match /mm/, "blah" }
|
66
66
|
end
|
67
67
|
|
68
|
+
def test_should_provide_assert_no_match
|
69
|
+
assert_passed { @test.assert_no_match /jam/, "bluejay" }
|
70
|
+
assert_failed(%|expected "blah" not to match /ah/|) { @test.assert_no_match /ah/, "blah" }
|
71
|
+
end
|
72
|
+
|
68
73
|
def test_should_provide_assert_same_elements_to_compare_arrays
|
69
74
|
assert_passed { @test.assert_same_elements [1,2,3], [1,2,3] }
|
70
75
|
assert_passed { @test.assert_same_elements [1,2,3], [3,1,2] }
|
@@ -81,6 +86,42 @@ class AssertionsTest < Test::Unit::TestCase
|
|
81
86
|
end
|
82
87
|
end
|
83
88
|
|
89
|
+
def test_should_provide_assert_output
|
90
|
+
assert_passed do
|
91
|
+
@test.assert_output 'foobar' do
|
92
|
+
puts 'foobar'
|
93
|
+
end
|
94
|
+
end
|
95
|
+
assert_passed do
|
96
|
+
@test.assert_output /oba/ do
|
97
|
+
puts 'foobar'
|
98
|
+
end
|
99
|
+
end
|
100
|
+
assert_failed('Expected output to match "foobar"') do
|
101
|
+
@test.assert_output 'foobar' do
|
102
|
+
puts 'whambam'
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
def test_should_provide_assert_not_output
|
108
|
+
assert_passed do
|
109
|
+
@test.assert_not_output 'foobar' do
|
110
|
+
puts 'whambam'
|
111
|
+
end
|
112
|
+
end
|
113
|
+
assert_passed do
|
114
|
+
@test.assert_not_output /oba/ do
|
115
|
+
puts 'whambam'
|
116
|
+
end
|
117
|
+
end
|
118
|
+
assert_failed('Expected output not to match "foobar"') do
|
119
|
+
@test.assert_not_output 'foobar' do
|
120
|
+
puts 'foobar'
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
84
125
|
private
|
85
126
|
|
86
127
|
def assert_passed
|
@@ -95,4 +136,4 @@ class AssertionsTest < Test::Unit::TestCase
|
|
95
136
|
assert_equal message, e.message, "assertion failure message didn't match"
|
96
137
|
end
|
97
138
|
end
|
98
|
-
end
|
139
|
+
end
|
data/test/unit/context_test.rb
CHANGED
data/test/unit/runner_test.rb
CHANGED
@@ -212,7 +212,7 @@ class StartAndFinishTest < KintamaIntegrationTest
|
|
212
212
|
spy = test_spy
|
213
213
|
|
214
214
|
spy.expects(:before_all_tests).once.in_sequence(order)
|
215
|
-
spy.expects(:in_test).in_sequence(order)
|
215
|
+
spy.expects(:in_test).twice.in_sequence(order)
|
216
216
|
|
217
217
|
Kintama.reset
|
218
218
|
Kintama.on_start do
|
@@ -223,13 +223,17 @@ class StartAndFinishTest < KintamaIntegrationTest
|
|
223
223
|
should "have run the `before_all_tests` block before a test" do
|
224
224
|
spy.in_test
|
225
225
|
end
|
226
|
+
|
227
|
+
should "only run `before_all_tests` once" do
|
228
|
+
spy.in_test
|
229
|
+
end
|
226
230
|
end
|
227
231
|
end
|
228
232
|
|
229
233
|
def test_should_be_able_to_run_things_after_all_tests_have_run
|
230
234
|
spy = test_spy
|
231
235
|
|
232
|
-
spy.expects(:in_test).in_sequence(order)
|
236
|
+
spy.expects(:in_test).twice.in_sequence(order)
|
233
237
|
spy.expects(:after_all_tests).once.in_sequence(order)
|
234
238
|
|
235
239
|
Kintama.reset
|
@@ -241,6 +245,10 @@ class StartAndFinishTest < KintamaIntegrationTest
|
|
241
245
|
should "have run the `before_all_tests` block before a test" do
|
242
246
|
spy.in_test
|
243
247
|
end
|
248
|
+
|
249
|
+
should "only run `after_all_tests` once all tests have finished" do
|
250
|
+
spy.in_test
|
251
|
+
end
|
244
252
|
end
|
245
253
|
end
|
246
254
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kintama
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Adam
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mocha
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.1.0
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.1.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
description:
|
42
56
|
email: james@lazyatom.com
|
43
57
|
executables: []
|
@@ -98,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
98
112
|
version: '0'
|
99
113
|
requirements: []
|
100
114
|
rubyforge_project:
|
101
|
-
rubygems_version: 2.
|
115
|
+
rubygems_version: 2.4.5
|
102
116
|
signing_key:
|
103
117
|
specification_version: 4
|
104
118
|
summary: It's for writing tests.
|