riot 0.9.10 → 0.9.11
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/lib/riot/assertion_macros.rb +3 -3
- data/lib/riot/context.rb +7 -4
- data/riot.gemspec +5 -4
- data/test/context_test.rb +33 -6
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.11
|
@@ -71,12 +71,12 @@ module Riot
|
|
71
71
|
# Asserts that an instance variable is defined for the result of the assertion. Value of instance
|
72
72
|
# variable is expected to not be nil
|
73
73
|
# setup { User.new(:email => "foo@bar.baz") }
|
74
|
-
#
|
74
|
+
# topic.assigns(:email)
|
75
75
|
#
|
76
76
|
# If a value is provided in addition to the variable name, the actual value of the instance variable
|
77
77
|
# must equal the expected value
|
78
|
-
# setup { User.new(:
|
79
|
-
#
|
78
|
+
# setup { User.new(:email => "foo@bar.baz") }
|
79
|
+
# topic.assigns(:email, "foo@bar.baz")
|
80
80
|
def assigns(variable, expected_value=nil)
|
81
81
|
actual_value = actual.instance_variable_get("@#{variable}")
|
82
82
|
return fail("expected @#{variable} to be assigned a value") if actual_value.nil?
|
data/lib/riot/context.rb
CHANGED
@@ -4,7 +4,7 @@ module Riot
|
|
4
4
|
attr_reader :description, :assertions, :situation
|
5
5
|
def initialize(description, reporter, parent=nil, &context_block)
|
6
6
|
@description, @reporter, @parent = description, reporter, parent
|
7
|
-
@assertions = []
|
7
|
+
@setups, @assertions = [], []
|
8
8
|
@situation = Situation.new
|
9
9
|
bootstrap(@situation)
|
10
10
|
instance_eval(&context_block) if block_given? # running the context
|
@@ -13,8 +13,10 @@ module Riot
|
|
13
13
|
|
14
14
|
# Walk it out. Call setup from parent first
|
15
15
|
def bootstrap(a_situation)
|
16
|
-
|
17
|
-
|
16
|
+
@parent.bootstrap(a_situation).each do |setup_block|
|
17
|
+
run_setup(a_situation, &setup_block)
|
18
|
+
end if @parent
|
19
|
+
@setups
|
18
20
|
end
|
19
21
|
|
20
22
|
def report
|
@@ -26,7 +28,8 @@ module Riot
|
|
26
28
|
# DSLee stuff
|
27
29
|
|
28
30
|
def setup(&block)
|
29
|
-
|
31
|
+
@setups << block
|
32
|
+
run_setup(situation, &block)
|
30
33
|
end
|
31
34
|
|
32
35
|
def context(description, &block) Context.new(description, @reporter, self, &block); end
|
data/riot.gemspec
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{riot}
|
8
|
-
s.version = "0.9.
|
8
|
+
s.version = "0.9.11"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Justin 'Gus' Knowlden"]
|
12
|
-
s.date = %q{2009-10-
|
12
|
+
s.date = %q{2009-10-19}
|
13
13
|
s.description = %q{An extremely fast, expressive, and context-driven unit-testing framework. A replacement for all other testing frameworks. Protest the slow test.}
|
14
14
|
s.email = %q{gus@gusg.us}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -74,3 +74,4 @@ Gem::Specification.new do |s|
|
|
74
74
|
else
|
75
75
|
end
|
76
76
|
end
|
77
|
+
|
data/test/context_test.rb
CHANGED
@@ -54,15 +54,15 @@ end # basic context
|
|
54
54
|
|
55
55
|
context "nested context" do
|
56
56
|
setup do
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
57
|
+
test_context = Riot::Context.new("foo", Riot::NilReport.new)
|
58
|
+
test_context.setup { @test_counter = 0; @foo = "bar" }
|
59
|
+
test_context.asserts("truthiness") { @test_counter += 1; true }
|
60
|
+
test_context
|
61
61
|
end
|
62
62
|
|
63
63
|
context "inner context with own setup" do
|
64
64
|
setup do
|
65
|
-
test_context =
|
65
|
+
test_context = topic.context("baz")
|
66
66
|
test_context.setup { @test_counter += 10 }
|
67
67
|
test_context
|
68
68
|
end
|
@@ -72,7 +72,34 @@ context "nested context" do
|
|
72
72
|
end
|
73
73
|
|
74
74
|
context "inner context without its own setup" do
|
75
|
-
setup {
|
75
|
+
setup { topic.context("bum") }
|
76
76
|
asserts("parent setup is called") { topic.situation }.assigns(:foo, "bar")
|
77
77
|
end
|
78
78
|
end
|
79
|
+
|
80
|
+
#
|
81
|
+
# Multiple setups in a context
|
82
|
+
|
83
|
+
context "multiple setups" do
|
84
|
+
setup do
|
85
|
+
test_context = Riot::Context.new("foo", Riot::NilReport.new)
|
86
|
+
test_context.setup { @foo = "bar" }
|
87
|
+
test_context.setup { @baz = "boo" }
|
88
|
+
test_context
|
89
|
+
end
|
90
|
+
|
91
|
+
asserts("foo") { topic.situation }.assigns(:foo, "bar")
|
92
|
+
asserts("bar") { topic.situation }.assigns(:baz, "boo")
|
93
|
+
|
94
|
+
context "in the parent of a nested context" do
|
95
|
+
setup do
|
96
|
+
test_context = topic.context("goo")
|
97
|
+
test_context.setup { @goo = "car" }
|
98
|
+
test_context
|
99
|
+
end
|
100
|
+
|
101
|
+
asserts("foo") { topic.situation }.assigns(:foo, "bar")
|
102
|
+
asserts("bar") { topic.situation }.assigns(:baz, "boo")
|
103
|
+
asserts("goo") { topic.situation }.assigns(:goo, "car")
|
104
|
+
end # in the parent of a nested context
|
105
|
+
end # multiple setups
|
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.
|
4
|
+
version: 0.9.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin 'Gus' Knowlden
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-19 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|