test4requirements 0.1.0.alpha.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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