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.
@@ -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