riot 0.9.2 → 0.9.3

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/Rakefile CHANGED
@@ -7,7 +7,6 @@ desc "Run tests"
7
7
  task :test do
8
8
  $:.concat ['./test', './lib']
9
9
  Dir.glob("./test/*_test.rb").each { |test| require test }
10
- Riot.report
11
10
  end
12
11
 
13
12
  desc "Run Flog against library (except tests)"
data/lib/riot/macros.rb CHANGED
@@ -14,6 +14,16 @@ module Riot
14
14
  actual.nil? || fail("expected nil, not #{actual.inspect}")
15
15
  end
16
16
 
17
+ # Asserts that the result of the test is a non-nil value. This is useful in the case where you don't want
18
+ # to translate the result of the test into a boolean value
19
+ # asserts("test") { "foo" }.exists
20
+ # should("test") { 123 }.exists
21
+ # asserts("test") { "" }.exists
22
+ # asserts("test") { nil }.exists # This would fail
23
+ def exists
24
+ !actual.nil? || fail("expected a non-nil value")
25
+ end
26
+
17
27
  # Asserts that the test raises the expected Exception
18
28
  # asserts("test") { raise My::Exception }.raises(My::Exception)
19
29
  # should("test") { raise My::Exception }.raises(My::Exception)
data/riot.gemspec CHANGED
@@ -1,11 +1,11 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "riot"
3
- s.version = "0.9.2"
4
- s.date = "2009-10-05"
3
+ s.version = "0.9.3"
4
+ s.date = "2009-10-06"
5
5
  s.summary = "An extremely fast, expressive, and context-driven unit-testing framework"
6
6
  s.email = %w[gus@gusg.us]
7
7
  s.homepage = "http://github.com/thumblemonks/protest"
8
- s.description = "An extremely fast, expressive, and context-driven unit-testing framework. A replacement for all other testing frameworks"
8
+ s.description = "An extremely fast, expressive, and context-driven unit-testing framework. A replacement for all other testing frameworks. Protest the slow test."
9
9
  s.authors = %w[Justin\ Knowlden]
10
10
 
11
11
  s.has_rdoc = false
@@ -26,6 +26,13 @@ Gem::Specification.new do |s|
26
26
 
27
27
  s.test_files = %w[
28
28
  Rakefile
29
+ test/assertion_macro_assigns_test.rb
30
+ test/assertion_macro_equals_test.rb
31
+ test/assertion_macro_exists_test.rb
32
+ test/assertion_macro_kind_of_test.rb
33
+ test/assertion_macro_matching_test.rb
34
+ test/assertion_macro_nil_test.rb
35
+ test/assertion_macro_raises_test.rb
29
36
  test/assertion_test.rb
30
37
  test/benchmark/simple_context_and_assertions.rb
31
38
  test/context_test.rb
@@ -0,0 +1,40 @@
1
+ require 'teststrap'
2
+
3
+ context "assigns assertion:" do
4
+ setup do
5
+ @fake_situation = Riot::Situation.new
6
+ object_with_instance_variables = Riot::Situation.new
7
+ object_with_instance_variables.instance_eval { @foo = "bar"; @bar = nil}
8
+ object_with_instance_variables
9
+ end
10
+
11
+ asserts("an instance variable was assigned") do
12
+ test_object = topic
13
+ Riot::Assertion.new("duh", @fake_situation) { test_object }.assigns(:foo)
14
+ end
15
+
16
+ asserts("an instance variable was never assigned") do
17
+ test_object = topic
18
+ Riot::Assertion.new("foo", @fake_situation) { test_object }.assigns(:baz)
19
+ end.kind_of(Riot::Failure)
20
+
21
+ asserts "an instance variable was defined with nil value" do
22
+ test_object = topic
23
+ Riot::Assertion.new("foo", @fake_situation) { test_object }.assigns(:bar).message
24
+ end.equals("expected @bar to be assigned a value")
25
+
26
+ asserts("an instance variable was assigned a specific value") do
27
+ test_object = topic
28
+ Riot::Assertion.new("duh", @fake_situation) { test_object }.assigns(:foo, "bar")
29
+ end
30
+
31
+ asserts("failure when instance never assigned even when a value is expected") do
32
+ test_object = topic
33
+ Riot::Assertion.new("duh", @fake_situation) { test_object }.assigns(:bar, "bar").message
34
+ end.equals("expected @bar to be assigned a value")
35
+
36
+ asserts("failure when expected value is not assigned to variable with a value") do
37
+ test_object = topic
38
+ Riot::Assertion.new("duh", @fake_situation) { test_object }.assigns(:foo, "baz").message
39
+ end.equals("expected @foo to be equal to 'baz', not 'bar'")
40
+ end # assigns assertion
@@ -0,0 +1,13 @@
1
+ require 'teststrap'
2
+
3
+ context "equals assertion:" do
4
+ setup { Riot::Situation.new }
5
+
6
+ asserts "result equals expectation" do
7
+ Riot::Assertion.new("i will pass", topic) { "foo bar" }.equals("foo bar")
8
+ end
9
+
10
+ should "raise a Failure if results don't equal each other" do
11
+ Riot::Assertion.new("failure", topic) { "bar" }.equals("foo")
12
+ end.kind_of(Riot::Failure)
13
+ end # equals assertion
@@ -0,0 +1,17 @@
1
+ require 'teststrap'
2
+
3
+ context "nil assertion:" do
4
+ setup { Riot::Situation.new }
5
+
6
+ asserts("result has a value") do
7
+ Riot::Assertion.new("foo", topic) { "foo" }.exists
8
+ end
9
+
10
+ asserts("empty string is considered a value") do
11
+ Riot::Assertion.new("foo", topic) { "" }.exists
12
+ end
13
+
14
+ should "raise a Failure if value is nil" do
15
+ Riot::Assertion.new("foo", topic) { nil }.exists
16
+ end.kind_of(Riot::Failure)
17
+ end # nil assertion
@@ -0,0 +1,13 @@
1
+ require 'teststrap'
2
+
3
+ context "kind_of assertion:" do
4
+ setup { Riot::Situation.new }
5
+
6
+ asserts "specific result is a kind of String" do
7
+ Riot::Assertion.new("foo", topic) { "a" }.kind_of(String)
8
+ end
9
+
10
+ should "raise a Failure if not a kind of String" do
11
+ Riot::Assertion.new("foo", topic) { 0 }.kind_of(String)
12
+ end.kind_of(Riot::Failure)
13
+ end # kind_of assertion
@@ -0,0 +1,17 @@
1
+ require 'teststrap'
2
+
3
+ context "matching assertion:" do
4
+ setup { Riot::Situation.new }
5
+
6
+ asserts "result matches expression" do
7
+ Riot::Assertion.new("foo", topic) { "a" }.matches(%r[.])
8
+ end.equals(0)
9
+
10
+ should "raise a Failure if result does not match" do
11
+ Riot::Assertion.new("foo", topic) { "" }.matches(%r[.])
12
+ end.kind_of(Riot::Failure)
13
+
14
+ should "return the result of a matching operation" do
15
+ Riot::Assertion.new("foo", topic) { "a" }.matches("a")
16
+ end.equals(0)
17
+ end # maching assertion
@@ -0,0 +1,13 @@
1
+ require 'teststrap'
2
+
3
+ context "nil assertion:" do
4
+ setup { Riot::Situation.new }
5
+
6
+ asserts("result is nil") do
7
+ Riot::Assertion.new("foo", topic) { nil }.nil
8
+ end
9
+
10
+ should "raise a Failure if not nil" do
11
+ Riot::Assertion.new("foo", topic) { "a" }.nil
12
+ end.kind_of(Riot::Failure)
13
+ end # nil assertion
@@ -0,0 +1,23 @@
1
+ require 'teststrap'
2
+
3
+ context "raises assertion:" do
4
+ setup { Riot::Situation.new }
5
+
6
+ should("raise an Exception") { raise Exception }.raises(Exception)
7
+
8
+ should "pass if provided message equals expectation" do
9
+ Riot::Assertion.new("foo", topic) { raise Exception, "I'm a nerd" }.raises(Exception, "I'm a nerd")
10
+ end.equals(true)
11
+
12
+ should "fail if provided message does not equal expectation" do
13
+ Riot::Assertion.new("foo", topic) { raise(Exception, "I'm a nerd") }.raises(Exception, "But I'm not")
14
+ end.kind_of(Riot::Failure)
15
+
16
+ should "pass if provided message matches expectation" do
17
+ Riot::Assertion.new("foo", topic) { raise(Exception, "I'm a nerd") }.raises(Exception, %r[nerd])
18
+ end.equals(true)
19
+
20
+ should "fail if provided message does not match expectation" do
21
+ Riot::Assertion.new("foo", topic) { raise(Exception, "I'm a nerd") }.raises(Exception, %r[foo])
22
+ end.kind_of(Riot::Failure)
23
+ end # raises assertion
@@ -1,26 +1,27 @@
1
1
  require 'teststrap'
2
2
 
3
- fake_situation = Riot::Situation.new
4
-
5
3
  context "basic assertion:" do
4
+ setup { Riot::Situation.new }
5
+
6
6
  should "have a description" do
7
- Riot::Assertion.new("i will pass", fake_situation).to_s
7
+ Riot::Assertion.new("i will pass", topic).to_s
8
8
  end.equals("i will pass")
9
9
 
10
10
  asserts "pass? is true when assertion passed" do
11
- Riot::Assertion.new("i will pass", fake_situation) { true }.passed?
11
+ Riot::Assertion.new("i will pass", topic) { true }.passed?
12
12
  end
13
13
 
14
14
  asserts "failure? is true when assertion does not pass" do
15
- Riot::Assertion.new("i will pass", fake_situation) { false }.failed?
15
+ Riot::Assertion.new("i will pass", topic) { false }.failed?
16
16
  end
17
17
 
18
18
  asserts "error? is true when an unexpected Exception is raised" do
19
- Riot::Assertion.new("error", fake_situation) { raise Exception, "blah" }.errored?
19
+ Riot::Assertion.new("error", topic) { raise Exception, "blah" }.errored?
20
20
  end
21
21
 
22
22
  context "that fails while executing test" do
23
23
  setup do
24
+ fake_situation = Riot::Situation.new
24
25
  Riot::Assertion.new("error", fake_situation) { fail("I'm a bum") }
25
26
  end
26
27
 
@@ -29,110 +30,3 @@ context "basic assertion:" do
29
30
  should("assign assertion to failure") { topic.result }.assigns(:assertion)
30
31
  end # that fails while executing test
31
32
  end # basic assertion
32
-
33
- context "equals assertion:" do
34
- asserts "result equals expectation" do
35
- Riot::Assertion.new("i will pass", fake_situation) { "foo bar" }.equals("foo bar")
36
- end
37
-
38
- should "raise a Failure if results don't equal each other" do
39
- Riot::Assertion.new("failure", fake_situation) { "bar" }.equals("foo")
40
- end.kind_of(Riot::Failure)
41
- end # equals assertion
42
-
43
- context "nil assertion:" do
44
- asserts("result is nil") { Riot::Assertion.new("foo", fake_situation) { nil }.nil }
45
- should "raise a Failure if not nil" do
46
- Riot::Assertion.new("foo", fake_situation) { "a" }.nil
47
- end.kind_of(Riot::Failure)
48
- end # nil assertion
49
-
50
- context "raises assertion:" do
51
- should("raise an Exception") { raise Exception }.raises(Exception)
52
-
53
- should "pass if provided message equals expectation" do
54
- Riot::Assertion.new("foo", fake_situation) do
55
- raise Exception, "I'm a nerd"
56
- end.raises(Exception, "I'm a nerd")
57
- end.equals(true)
58
-
59
- should "fail if provided message does not equal expectation" do
60
- Riot::Assertion.new("foo", fake_situation) do
61
- raise(Exception, "I'm a nerd")
62
- end.raises(Exception, "But I'm not")
63
- end.kind_of(Riot::Failure)
64
-
65
- should "pass if provided message matches expectation" do
66
- Riot::Assertion.new("foo", fake_situation) do
67
- raise(Exception, "I'm a nerd")
68
- end.raises(Exception, %r[nerd])
69
- end.equals(true)
70
-
71
- should "fail if provided message does not match expectation" do
72
- Riot::Assertion.new("foo", fake_situation) do
73
- raise(Exception, "I'm a nerd")
74
- end.raises(Exception, %r[foo])
75
- end.kind_of(Riot::Failure)
76
- end # raises assertion
77
-
78
- context "matching assertion:" do
79
- asserts "result matches expression" do
80
- Riot::Assertion.new("foo", fake_situation) { "a" }.matches(%r[.])
81
- end.equals(0)
82
-
83
- should "raise a Failure if result does not match" do
84
- Riot::Assertion.new("foo", fake_situation) { "" }.matches(%r[.])
85
- end.kind_of(Riot::Failure)
86
-
87
- should "return the result of a matching operation" do
88
- Riot::Assertion.new("foo", fake_situation) { "a" }.matches("a")
89
- end.equals(0)
90
- end # maching assertion
91
-
92
- context "kind_of assertion:" do
93
- asserts "specific result is a kind of String" do
94
- Riot::Assertion.new("foo", fake_situation) { "a" }.kind_of(String)
95
- end
96
-
97
- should "raise a Failure if not a kind of String" do
98
- Riot::Assertion.new("foo", fake_situation) { 0 }.kind_of(String)
99
- end.kind_of(Riot::Failure)
100
- end # kind_of assertion
101
-
102
- context "assigns assertion:" do
103
- setup do
104
- situation = Riot::Situation.new
105
- situation.instance_eval { @foo = "bar"; @bar = nil}
106
- situation
107
- end
108
-
109
- asserts("an instance variable was assigned") do
110
- test_object = topic
111
- Riot::Assertion.new("duh", fake_situation) { test_object }.assigns(:foo)
112
- end
113
-
114
- asserts("an instance variable was never assigned") do
115
- test_object = topic
116
- Riot::Assertion.new("foo", fake_situation) { test_object }.assigns(:baz)
117
- end.kind_of(Riot::Failure)
118
-
119
- asserts "an instance variable was defined with nil value" do
120
- test_object = topic
121
- Riot::Assertion.new("foo", fake_situation) { test_object }.assigns(:bar).message
122
- end.equals("expected @bar to be assigned a value")
123
-
124
- asserts("an instance variable was assigned a specific value") do
125
- test_object = topic
126
- Riot::Assertion.new("duh", fake_situation) { test_object }.assigns(:foo, "bar")
127
- end
128
-
129
- asserts("failure when instance never assigned even when a value is expected") do
130
- test_object = topic
131
- Riot::Assertion.new("duh", fake_situation) { test_object }.assigns(:bar, "bar").message
132
- end.equals("expected @bar to be assigned a value")
133
-
134
- asserts("failure when expected value is not assigned to variable with a value") do
135
- test_object = topic
136
- Riot::Assertion.new("duh", fake_situation) { test_object }.assigns(:foo, "baz").message
137
- end.equals("expected @foo to be equal to 'baz', not 'bar'")
138
- end # assigns assertion
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: riot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Knowlden
@@ -9,11 +9,11 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-10-05 00:00:00 -05:00
12
+ date: 2009-10-06 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
16
- description: An extremely fast, expressive, and context-driven unit-testing framework. A replacement for all other testing frameworks
16
+ description: An extremely fast, expressive, and context-driven unit-testing framework. A replacement for all other testing frameworks. Protest the slow test.
17
17
  email:
18
18
  - gus@gusg.us
19
19
  executables: []
@@ -62,6 +62,13 @@ specification_version: 3
62
62
  summary: An extremely fast, expressive, and context-driven unit-testing framework
63
63
  test_files:
64
64
  - Rakefile
65
+ - test/assertion_macro_assigns_test.rb
66
+ - test/assertion_macro_equals_test.rb
67
+ - test/assertion_macro_exists_test.rb
68
+ - test/assertion_macro_kind_of_test.rb
69
+ - test/assertion_macro_matching_test.rb
70
+ - test/assertion_macro_nil_test.rb
71
+ - test/assertion_macro_raises_test.rb
65
72
  - test/assertion_test.rb
66
73
  - test/benchmark/simple_context_and_assertions.rb
67
74
  - test/context_test.rb