test4requirements 0.1.0.alpha.2
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/examples/example_test4requirements.rb +62 -0
- data/examples/example_test4requirements_shoulda.rb +60 -0
- data/lib/test4requirements.rb +98 -0
- data/lib/test4requirements/requirement.rb +132 -0
- data/lib/test4requirements/requirementlist.rb +163 -0
- data/lib/test4requirements/shoulda.rb +77 -0
- data/lib/test4requirements/testcase.rb +59 -0
- data/unittest/check_compatibility.rb +65 -0
- data/unittest/unittest_requirement.rb +82 -0
- data/unittest/unittest_requirementlist.rb +84 -0
- data/unittest/unittest_requirementlist_overview.rb +199 -0
- data/unittest/unittest_shoulda.rb +123 -0
- data/unittest/unittest_testcase.rb +44 -0
- metadata +133 -0
@@ -0,0 +1,123 @@
|
|
1
|
+
$:.unshift('../lib')
|
2
|
+
#~ gem 'test-unit'
|
3
|
+
#~ require 'test/unit'
|
4
|
+
#~ require 'test4requirements.rb'
|
5
|
+
require 'test4requirements/shoulda.rb'
|
6
|
+
include Test4requirements
|
7
|
+
RequirementList.report_type_default = nil
|
8
|
+
|
9
|
+
#IO to catch stdout in TestRunner
|
10
|
+
IO_Catcher = Class.new(IO){ def write(arg);end }.new(2, 'w')
|
11
|
+
|
12
|
+
class Test_Shoulda_anonymous < Test::Unit::TestCase
|
13
|
+
def test_anonomous
|
14
|
+
#Anonymous classes are not allowed
|
15
|
+
assert_raise(RuntimeError){
|
16
|
+
Class.new(Test::Unit::TestCase) do
|
17
|
+
should 'request_1' do
|
18
|
+
assert_equal(2,1+1)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
}
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
class Test_Shoulda_direct < Test::Unit::TestCase
|
26
|
+
def setup
|
27
|
+
@reqs = reqs = RequirementList.new(:req1,:req2,:req3)
|
28
|
+
@testcase = Class.new(Test::Unit::TestCase) do
|
29
|
+
#Set class name. Normally class name.
|
30
|
+
def self.name;'Test_ShouldaTest';end
|
31
|
+
|
32
|
+
self.requirements= reqs
|
33
|
+
#Add requirement as parameter of should
|
34
|
+
should 'request_1', requirement: :req1 do
|
35
|
+
assert_equal(2,1+1)
|
36
|
+
end
|
37
|
+
|
38
|
+
#add requirement via requirement command
|
39
|
+
should 'request_2' do
|
40
|
+
assign_requirement(:req2) #this test is testing requirement 1
|
41
|
+
assert_equal(3,1+1)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
suite = @testcase.suite #run tests
|
46
|
+
Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_overview_default()
|
50
|
+
assert_kind_of(Hash, @reqs.overview)
|
51
|
+
assert_equal([:req1,:req2,:req3], @reqs.overview.keys)
|
52
|
+
assert_equal([true,false,nil], @reqs.overview.values)
|
53
|
+
end
|
54
|
+
|
55
|
+
#same as default
|
56
|
+
def test_overview_nil()
|
57
|
+
@reqs.report_type = nil
|
58
|
+
assert_kind_of(Hash, @reqs.overview)
|
59
|
+
assert_equal([true,false,nil], @reqs.overview.values)
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_overview_txt()
|
63
|
+
@reqs.report_type = :txt
|
64
|
+
assert_kind_of(Array, @reqs.overview)
|
65
|
+
assert_equal(3, @reqs.overview.size)
|
66
|
+
assert_equal(["Requirement req1 was successfull tested (request_1 (_Shoulda/Test_ShouldaTest))",
|
67
|
+
"Requirement req2 was unsuccessfull tested (request_2 (_Shoulda/Test_ShouldaTest))",
|
68
|
+
"Requirement req3 was not tested"
|
69
|
+
], @reqs.overview)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
class Test_Shoulda_context < Test::Unit::TestCase
|
75
|
+
def setup
|
76
|
+
@reqs = reqs = RequirementList.new(:req1,:req2,:req3)
|
77
|
+
@testcase = Class.new(Test::Unit::TestCase) do
|
78
|
+
#Set class name. Normally class name.
|
79
|
+
def self.name;'Test_ShouldaTest';end
|
80
|
+
|
81
|
+
self.requirements= reqs
|
82
|
+
|
83
|
+
context "Testcontext" do
|
84
|
+
#Add requirement as parameter of should
|
85
|
+
should 'request_1', requirement: :req1 do
|
86
|
+
assert_equal(2,1+1)
|
87
|
+
end
|
88
|
+
|
89
|
+
#add requirement via requirement command
|
90
|
+
should 'request_2' do
|
91
|
+
assign_requirement(:req2) #this test is testing requirement 1
|
92
|
+
assert_equal(3,1+1)
|
93
|
+
end
|
94
|
+
end #context
|
95
|
+
end
|
96
|
+
|
97
|
+
suite = @testcase.suite #run tests
|
98
|
+
Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_overview_default()
|
102
|
+
assert_kind_of(Hash, @reqs.overview)
|
103
|
+
assert_equal([:req1,:req2,:req3], @reqs.overview.keys)
|
104
|
+
assert_equal([true,false,nil], @reqs.overview.values)
|
105
|
+
end
|
106
|
+
|
107
|
+
#same as default
|
108
|
+
def test_overview_nil()
|
109
|
+
@reqs.report_type = nil
|
110
|
+
assert_kind_of(Hash, @reqs.overview)
|
111
|
+
assert_equal([true,false,nil], @reqs.overview.values)
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_overview_txt()
|
115
|
+
@reqs.report_type = :txt
|
116
|
+
assert_kind_of(Array, @reqs.overview)
|
117
|
+
assert_equal(3, @reqs.overview.size)
|
118
|
+
assert_equal(["Requirement req1 was successfull tested (request_1 (Testcontext/Test_ShouldaTest))",
|
119
|
+
"Requirement req2 was unsuccessfull tested (request_2 (Testcontext/Test_ShouldaTest))",
|
120
|
+
"Requirement req3 was not tested"
|
121
|
+
], @reqs.overview)
|
122
|
+
end
|
123
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
$:.unshift('../lib')
|
2
|
+
#~ gem 'test-unit'
|
3
|
+
#~ require 'test/unit'
|
4
|
+
require 'test4requirements.rb'
|
5
|
+
include Test4requirements
|
6
|
+
RequirementList.report_type_default = nil
|
7
|
+
|
8
|
+
|
9
|
+
class Test_TestCase < Test::Unit::TestCase
|
10
|
+
def setup
|
11
|
+
@testcase = Class.new(Test::Unit::TestCase)
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_interface_ok=()
|
15
|
+
reqs = RequirementList.new(1,2,3)
|
16
|
+
assert_nothing_raised { @testcase.requirements= reqs }
|
17
|
+
end
|
18
|
+
def test_interface_ok()
|
19
|
+
reqs = RequirementList.new(1,2,3)
|
20
|
+
assert_nothing_raised { @testcase.requirements reqs }
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_interface_wrong=()
|
24
|
+
assert_raise(ArgumentError) { @testcase.requirements= 1 }
|
25
|
+
end
|
26
|
+
def test_interface_wrong()
|
27
|
+
assert_raise(ArgumentError) { @testcase.requirements 1 }
|
28
|
+
end
|
29
|
+
def test_interface_double()
|
30
|
+
assert_raise(ArgumentError) { @testcase.requirements 1 }
|
31
|
+
end
|
32
|
+
def test_interface_double_reqlist()
|
33
|
+
reqs = RequirementList.new(1,2,3)
|
34
|
+
assert_nothing_raised { @testcase.requirements= reqs }
|
35
|
+
assert_raise(ArgumentError) { @testcase.requirements= reqs }
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_get_requirements()
|
39
|
+
reqs = RequirementList.new(1,2,3)
|
40
|
+
@testcase.requirements= reqs
|
41
|
+
assert_equal(reqs, @testcase.get_requirements)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
metadata
ADDED
@@ -0,0 +1,133 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: test4requirements
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 386926566
|
5
|
+
prerelease: true
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
- alpha
|
11
|
+
- 2
|
12
|
+
version: 0.1.0.alpha.2
|
13
|
+
platform: ruby
|
14
|
+
authors:
|
15
|
+
- Knut Lickert
|
16
|
+
autorequire:
|
17
|
+
bindir: bin
|
18
|
+
cert_chain: []
|
19
|
+
|
20
|
+
date: 2011-08-09 00:00:00 +02:00
|
21
|
+
default_executable:
|
22
|
+
dependencies:
|
23
|
+
- !ruby/object:Gem::Dependency
|
24
|
+
name: test-unit
|
25
|
+
prerelease: false
|
26
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
27
|
+
none: false
|
28
|
+
requirements:
|
29
|
+
- - ">="
|
30
|
+
- !ruby/object:Gem::Version
|
31
|
+
hash: 3
|
32
|
+
segments:
|
33
|
+
- 0
|
34
|
+
version: "0"
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: log4r
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
version: "0"
|
49
|
+
type: :runtime
|
50
|
+
version_requirements: *id002
|
51
|
+
- !ruby/object:Gem::Dependency
|
52
|
+
name: shoulda
|
53
|
+
prerelease: false
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
|
+
none: false
|
56
|
+
requirements:
|
57
|
+
- - ">="
|
58
|
+
- !ruby/object:Gem::Version
|
59
|
+
hash: 3
|
60
|
+
segments:
|
61
|
+
- 0
|
62
|
+
version: "0"
|
63
|
+
type: :development
|
64
|
+
version_requirements: *id003
|
65
|
+
description: |
|
66
|
+
Assign requirements to TestCases and Assertions to get an overview on them.
|
67
|
+
|
68
|
+
email: knut@lickert.net
|
69
|
+
executables: []
|
70
|
+
|
71
|
+
extensions: []
|
72
|
+
|
73
|
+
extra_rdoc_files:
|
74
|
+
- examples/example_test4requirements.rb
|
75
|
+
- examples/example_test4requirements_shoulda.rb
|
76
|
+
files:
|
77
|
+
- lib/test4requirements.rb
|
78
|
+
- lib/test4requirements/requirement.rb
|
79
|
+
- lib/test4requirements/requirementlist.rb
|
80
|
+
- lib/test4requirements/testcase.rb
|
81
|
+
- lib/test4requirements/shoulda.rb
|
82
|
+
- examples/example_test4requirements.rb
|
83
|
+
- examples/example_test4requirements_shoulda.rb
|
84
|
+
- unittest/unittest_requirement.rb
|
85
|
+
- unittest/unittest_requirementlist.rb
|
86
|
+
- unittest/unittest_requirementlist_overview.rb
|
87
|
+
- unittest/unittest_shoulda.rb
|
88
|
+
- unittest/unittest_testcase.rb
|
89
|
+
- unittest/check_compatibility.rb
|
90
|
+
has_rdoc: true
|
91
|
+
homepage: http://stackoverflow.com/questions/6958586/are-there-any-good-ruby-testing-traceability-solutions/6962436#6962436
|
92
|
+
licenses: []
|
93
|
+
|
94
|
+
post_install_message:
|
95
|
+
rdoc_options:
|
96
|
+
- --main
|
97
|
+
- lib/test4requirements.rb
|
98
|
+
require_paths:
|
99
|
+
- lib
|
100
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
hash: 3
|
106
|
+
segments:
|
107
|
+
- 0
|
108
|
+
version: "0"
|
109
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
|
+
none: false
|
111
|
+
requirements:
|
112
|
+
- - ">"
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
hash: 25
|
115
|
+
segments:
|
116
|
+
- 1
|
117
|
+
- 3
|
118
|
+
- 1
|
119
|
+
version: 1.3.1
|
120
|
+
requirements: []
|
121
|
+
|
122
|
+
rubyforge_project:
|
123
|
+
rubygems_version: 1.3.7
|
124
|
+
signing_key:
|
125
|
+
specification_version: 3
|
126
|
+
summary: Support requirements administration for unit-test.
|
127
|
+
test_files:
|
128
|
+
- unittest/unittest_requirement.rb
|
129
|
+
- unittest/unittest_requirementlist.rb
|
130
|
+
- unittest/unittest_requirementlist_overview.rb
|
131
|
+
- unittest/unittest_shoulda.rb
|
132
|
+
- unittest/unittest_testcase.rb
|
133
|
+
- unittest/check_compatibility.rb
|