test4requirements 0.1.0.alpha.2 → 0.1.0
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_fail_pend_omit.rb +58 -0
- data/examples/example_small.rb +35 -0
- data/examples/example_test4requirements.rb +68 -61
- data/examples/example_test4requirements_shoulda.rb +63 -59
- data/examples/test4requirements.rb +11 -0
- data/lib/test4requirements.rb +106 -98
- data/lib/test4requirements/requirement.rb +56 -35
- data/lib/test4requirements/requirementlist.rb +111 -18
- data/lib/test4requirements/shoulda.rb +114 -77
- data/lib/test4requirements/testcase.rb +10 -12
- data/unittest/check_compatibility.rb +65 -65
- data/unittest/unittest_requirement.rb +28 -19
- data/unittest/unittest_requirementlist.rb +50 -34
- data/unittest/{unittest_requirementlist_overview.rb → unittest_requirementlist_with_tests.rb} +257 -199
- data/unittest/unittest_shoulda.rb +123 -123
- data/unittest/unittest_testcase.rb +4 -4
- metadata +21 -17
@@ -40,20 +40,18 @@ Example:
|
|
40
40
|
=end
|
41
41
|
def assign_requirement(req)
|
42
42
|
raise RuntimeError, "No requirements defined for #{self}" unless requirements
|
43
|
-
requirements.assign_test(req, self.name)
|
43
|
+
requirements.assign_test(req, self.name, @_result)
|
44
44
|
end
|
45
|
-
|
46
|
-
|
47
|
-
Add info about a successfull test to the assigned requirement.
|
48
|
-
=end
|
45
|
+
|
46
|
+
alias :old_run_test :run_test
|
49
47
|
def run_test
|
50
|
-
|
51
|
-
#
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
48
|
+
old_run_test
|
49
|
+
#Store successfull test run,
|
50
|
+
self.requirements.each{|req|
|
51
|
+
req.result(self.name, :ok) unless req[self.name].nil?
|
52
|
+
} if requirements
|
53
|
+
end
|
54
|
+
|
57
55
|
end #class TestCase
|
58
56
|
end #module Unit
|
59
57
|
end #module Test
|
@@ -1,65 +1,65 @@
|
|
1
|
-
=begin rdoc
|
2
|
-
Some check routines to check the installation
|
3
|
-
=end
|
4
|
-
|
5
|
-
puts RUBY_DESCRIPTION
|
6
|
-
|
7
|
-
|
8
|
-
gem 'test-unit'
|
9
|
-
#~ require 'test/unit'
|
10
|
-
require 'test/unit/version'
|
11
|
-
|
12
|
-
=begin rdoc
|
13
|
-
|
14
|
-
Encoding#ascii_compatible?
|
15
|
-
|
16
|
-
Test::Unit::Assertions contains:
|
17
|
-
if string.respond_to?(:encoding) and
|
18
|
-
!string.encoding.ascii_compatible?
|
19
|
-
string = string.dup.force_encoding("ASCII-8BIT")
|
20
|
-
end
|
21
|
-
Probably added with test-unit 2.2.0
|
22
|
-
http://rubyforge.org/forum/forum.php?forum_id=38792
|
23
|
-
support not ASCII compatible string diff.
|
24
|
-
|
25
|
-
Encoding#ascii_compatible? was added with:
|
26
|
-
http://redmine.ruby-lang.org/issues/show/1900
|
27
|
-
Applied in changeset r24480.
|
28
|
-
|
29
|
-
http://www.ruby-forum.com/topic/192885
|
30
|
-
|
31
|
-
|
32
|
-
=end
|
33
|
-
if Test::Unit::VERSION >= '2.3.1'
|
34
|
-
if ! 'string'.encoding.respond_to?(:'ascii_compatible?')
|
35
|
-
puts "Encoding#ascii_compatible? not defined - Test::Unit #{Test::Unit::VERSION} needs it"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
#~ gem 'test-unit', '= 2.3.1'
|
40
|
-
#~ require 'test/unit'
|
41
|
-
#~ class Test_Requirement < Test::Unit::TestCase
|
42
|
-
#~ def test_interface_ok()
|
43
|
-
#~ assert_equal('a', 'b')
|
44
|
-
#~ end
|
45
|
-
#~ end
|
46
|
-
|
47
|
-
|
48
|
-
__END__
|
49
|
-
RUBY_VERSION
|
50
|
-
RUBY_PATCHLEVEL
|
51
|
-
RUBY_RELEASE_DATE
|
52
|
-
|
53
|
-
Worked fine:
|
54
|
-
gem 'test-unit', '= 2.1.1'
|
55
|
-
|
56
|
-
|
57
|
-
gem 'test-unit', '= 2.3.1'
|
58
|
-
ruby 1.9.1
|
59
|
-
|
60
|
-
|
61
|
-
if string.respond_to?(:encoding) and
|
62
|
-
!string.encoding.ascii_compatible?
|
63
|
-
string = string.dup.force_encoding("ASCII-8BIT")
|
64
|
-
end
|
65
|
-
|
1
|
+
=begin rdoc
|
2
|
+
Some check routines to check the installation
|
3
|
+
=end
|
4
|
+
|
5
|
+
puts RUBY_DESCRIPTION
|
6
|
+
|
7
|
+
|
8
|
+
gem 'test-unit'
|
9
|
+
#~ require 'test/unit'
|
10
|
+
require 'test/unit/version'
|
11
|
+
|
12
|
+
=begin rdoc
|
13
|
+
|
14
|
+
Encoding#ascii_compatible?
|
15
|
+
|
16
|
+
Test::Unit::Assertions contains:
|
17
|
+
if string.respond_to?(:encoding) and
|
18
|
+
!string.encoding.ascii_compatible?
|
19
|
+
string = string.dup.force_encoding("ASCII-8BIT")
|
20
|
+
end
|
21
|
+
Probably added with test-unit 2.2.0
|
22
|
+
http://rubyforge.org/forum/forum.php?forum_id=38792
|
23
|
+
support not ASCII compatible string diff.
|
24
|
+
|
25
|
+
Encoding#ascii_compatible? was added with:
|
26
|
+
http://redmine.ruby-lang.org/issues/show/1900
|
27
|
+
Applied in changeset r24480.
|
28
|
+
|
29
|
+
http://www.ruby-forum.com/topic/192885
|
30
|
+
|
31
|
+
|
32
|
+
=end
|
33
|
+
if Test::Unit::VERSION >= '2.3.1'
|
34
|
+
if ! 'string'.encoding.respond_to?(:'ascii_compatible?')
|
35
|
+
puts "Encoding#ascii_compatible? not defined - Test::Unit #{Test::Unit::VERSION} needs it"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
#~ gem 'test-unit', '= 2.3.1'
|
40
|
+
#~ require 'test/unit'
|
41
|
+
#~ class Test_Requirement < Test::Unit::TestCase
|
42
|
+
#~ def test_interface_ok()
|
43
|
+
#~ assert_equal('a', 'b')
|
44
|
+
#~ end
|
45
|
+
#~ end
|
46
|
+
|
47
|
+
|
48
|
+
__END__
|
49
|
+
RUBY_VERSION
|
50
|
+
RUBY_PATCHLEVEL
|
51
|
+
RUBY_RELEASE_DATE
|
52
|
+
|
53
|
+
Worked fine:
|
54
|
+
gem 'test-unit', '= 2.1.1'
|
55
|
+
|
56
|
+
|
57
|
+
gem 'test-unit', '= 2.3.1'
|
58
|
+
ruby 1.9.1
|
59
|
+
|
60
|
+
|
61
|
+
if string.respond_to?(:encoding) and
|
62
|
+
!string.encoding.ascii_compatible?
|
63
|
+
string = string.dup.force_encoding("ASCII-8BIT")
|
64
|
+
end
|
65
|
+
|
@@ -1,9 +1,10 @@
|
|
1
1
|
$:.unshift('../lib')
|
2
|
-
gem 'test-unit'
|
2
|
+
gem 'test-unit', '<= 2.1.1' if RUBY_VERSION == '1.9.1'
|
3
3
|
require 'test/unit'
|
4
4
|
require 'test4requirements/requirement.rb'
|
5
5
|
include Test4requirements
|
6
6
|
|
7
|
+
|
7
8
|
class Test_Requirement < Test::Unit::TestCase
|
8
9
|
|
9
10
|
def test_interface_ok()
|
@@ -24,59 +25,67 @@ class Test_Requirement < Test::Unit::TestCase
|
|
24
25
|
assert_nothing_raised { req = Requirement.new(1, :reference => 'ref')}
|
25
26
|
assert_equal('ref', req.reference)
|
26
27
|
end
|
28
|
+
def test_interface_option_key()
|
29
|
+
req = nil
|
30
|
+
assert_nothing_raised { req = Requirement.new(1, :key => 1)}
|
31
|
+
assert_raise(ArgumentError, "ambiguous key") { Requirement.new(1, :key => 2)}
|
32
|
+
end
|
27
33
|
def test_interface_option()
|
28
34
|
assert_raise(ArgumentError) { Requirement.new(1, :undefined_key => 'desc') }
|
29
35
|
end
|
30
36
|
|
31
37
|
def test_no_test_assignment()
|
32
38
|
req = Requirement.new(1)
|
33
|
-
assert_false(req.
|
39
|
+
assert_false(req.test_defined?)
|
34
40
|
assert_nil(req.successfull?)
|
35
41
|
end
|
36
42
|
|
37
43
|
def test_test_assignment()
|
38
44
|
req = Requirement.new(1)
|
39
45
|
req.test='loc'
|
40
|
-
assert_equal(1,req.
|
46
|
+
assert_equal(1,req.test_defined?)
|
41
47
|
req.test='loc'
|
42
|
-
assert_equal(1,req.
|
48
|
+
assert_equal(1,req.test_defined?, "No duplicate definition")
|
43
49
|
req.test='loc2'
|
44
|
-
assert_equal(2,req.
|
50
|
+
assert_equal(2,req.test_defined?, "Two TestCases")
|
45
51
|
|
46
|
-
|
52
|
+
assert_nil(req.successfull?)
|
47
53
|
end
|
48
54
|
|
49
55
|
def test_test_success()
|
50
56
|
req = Requirement.new(1)
|
51
57
|
req.test='loc'
|
52
|
-
assert_equal(1,req.
|
53
|
-
|
58
|
+
assert_equal(1,req.test_defined?)
|
59
|
+
assert_nil(req.successfull?)
|
54
60
|
|
55
|
-
req.
|
56
|
-
assert_equal(1,req.
|
61
|
+
req.result('loc', :ok)
|
62
|
+
assert_equal(1,req.test_defined?)
|
57
63
|
assert_true(req.successfull?)
|
58
64
|
end
|
59
65
|
|
60
66
|
def test_test_success_without_assignment()
|
61
67
|
req = Requirement.new(1)
|
62
|
-
assert_false(req.
|
68
|
+
assert_false(req.test_defined?)
|
63
69
|
assert_nil(req.successfull?)
|
64
70
|
|
65
|
-
req.
|
66
|
-
|
71
|
+
#~ req.test = 'loc'
|
72
|
+
req.result('loc', :ok)
|
73
|
+
assert_equal(1,req.test_defined?)
|
67
74
|
assert_true(req.successfull?)
|
68
75
|
end
|
69
76
|
|
70
77
|
def test_2test_success()
|
71
78
|
req = Requirement.new(1)
|
72
79
|
req.test='loc'
|
73
|
-
assert_equal(1,req.
|
74
|
-
|
80
|
+
assert_equal(1,req.test_defined?)
|
81
|
+
assert_nil(req.successfull?, 'Test was not executed')
|
75
82
|
|
76
|
-
req.
|
77
|
-
|
78
|
-
|
83
|
+
req.test = 'loc2'
|
84
|
+
req.result('loc2', :ok)
|
85
|
+
assert_equal(2,req.test_defined?)
|
86
|
+
assert_nil(req.successfull?, "One of the tests was not done")
|
87
|
+
req.result('loc', :ok)
|
88
|
+
assert_true(req.successfull?)
|
79
89
|
end
|
80
|
-
|
81
90
|
|
82
91
|
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
$:.unshift('../lib')
|
2
|
+
gem 'test-unit', '<= 2.1.1' if RUBY_VERSION == '1.9.1'
|
2
3
|
gem 'test-unit'
|
3
4
|
require 'test/unit'
|
4
5
|
require 'log4r'
|
@@ -13,72 +14,87 @@ RequirementList.report_type_default = nil
|
|
13
14
|
class Test_RequirementList < Test::Unit::TestCase
|
14
15
|
|
15
16
|
def test_interface()
|
16
|
-
|
17
|
-
assert_nothing_raised { RequirementList.new(
|
18
|
-
assert_nothing_raised { RequirementList.new(
|
17
|
+
assert_raise(ArgumentError) { RequirementList.new()}
|
18
|
+
assert_nothing_raised { RequirementList.new(:reqId)}
|
19
|
+
assert_nothing_raised { RequirementList.new(:reqId,1)}
|
20
|
+
assert_nothing_raised { RequirementList.new(:reqId, Requirement.new(1))}
|
19
21
|
end
|
20
22
|
|
21
23
|
def test_add_requirement()
|
22
|
-
req = RequirementList.new()
|
23
|
-
assert_nothing_raised { req << Requirement.new(
|
24
|
-
assert_raise(ArgumentError) { req <<
|
24
|
+
req = RequirementList.new(:reqId)
|
25
|
+
assert_nothing_raised { req << Requirement.new(:req1) }
|
26
|
+
assert_raise(ArgumentError) { req << :req1 }
|
27
|
+
assert_equal(1, req.each.size)
|
28
|
+
assert_equal(:req1, req.each.first.key)
|
25
29
|
end
|
26
|
-
|
30
|
+
|
31
|
+
def test_load()
|
32
|
+
req = RequirementList.new(:reqId)
|
33
|
+
#~ pend('load')
|
34
|
+
assert_nothing_raised { req.load( {
|
35
|
+
req1: {
|
36
|
+
description: 'What is required',
|
37
|
+
reference: 'Customer Requirement, Version 2011-08-02, page 12'},
|
38
|
+
req2: {
|
39
|
+
description: 'What is required',
|
40
|
+
reference: 'Customer Requirement, Version 2011-08-02, page 13'}
|
41
|
+
})
|
42
|
+
}
|
43
|
+
assert_equal(2, req.each.size)
|
44
|
+
assert_equal(:req1, req.each.first.key)
|
45
|
+
assert_equal(:req2, req.each.last.key)
|
46
|
+
|
47
|
+
end
|
48
|
+
|
27
49
|
def test_interface_double_definition()
|
28
|
-
assert_raise(ArgumentError) { RequirementList.new(1, 1) }
|
29
|
-
assert_raise(ArgumentError) { RequirementList.new(Requirement.new(1),1)}
|
30
|
-
assert_raise(ArgumentError) { RequirementList.new(Requirement.new(1),Requirement.new(1))}
|
50
|
+
assert_raise(ArgumentError) { RequirementList.new(:reqId, 1, 1) }
|
51
|
+
assert_raise(ArgumentError) { RequirementList.new(:reqId, Requirement.new(1),1)}
|
52
|
+
assert_raise(ArgumentError) { RequirementList.new(:reqId, Requirement.new(1),Requirement.new(1))}
|
31
53
|
end
|
32
54
|
|
33
55
|
def test_unassigned_test()
|
34
|
-
req = RequirementList.new()
|
56
|
+
req = RequirementList.new(:reqId)
|
35
57
|
assert_raise(ArgumentError, "Unkwown req. can't be assigned") { req.assign_test(1, 'loc')}
|
36
58
|
assert_equal(nil, req[1], "Unassigned test returns nil")
|
37
59
|
#~ assert_false(req[1].tested?)
|
38
60
|
#~ assert_false(req[1].successfull?)
|
39
61
|
end
|
40
62
|
def test_assign_test()
|
41
|
-
req = RequirementList.new()
|
42
|
-
assert_nothing_raised("Assign requirement") { req << Requirement.new(
|
43
|
-
assert_nothing_raised("Assign test") { req.assign_test(
|
44
|
-
assert_instance_of(Requirement, req[
|
45
|
-
assert_equal(false, req[
|
46
|
-
assert_equal(1,req[
|
47
|
-
|
63
|
+
req = RequirementList.new(:reqId)
|
64
|
+
assert_nothing_raised("Assign requirement") { req << Requirement.new(:req1) }
|
65
|
+
assert_nothing_raised("Assign test") { req.assign_test(:req1, 'loc', Test::Unit::TestResult.new()) }
|
66
|
+
assert_instance_of(Requirement, req[:req1])
|
67
|
+
assert_equal(false, req[:req1]['loc'])
|
68
|
+
assert_equal(1,req[:req1].test_defined?)
|
69
|
+
assert_nil(req[:req1].successfull?)
|
48
70
|
end
|
49
71
|
|
50
72
|
def test_successfull_test()
|
51
|
-
req = RequirementList.new()
|
73
|
+
req = RequirementList.new(:reqId)
|
52
74
|
req << Requirement.new(1)
|
53
|
-
req.assign_test(1, 'loc') #not neccesary
|
75
|
+
req.assign_test(1, 'loc', Test::Unit::TestResult.new()) #not neccesary
|
54
76
|
assert_false(req[1]['loc'])
|
55
77
|
|
56
|
-
assert_nothing_raised("Successfull test") { req.
|
78
|
+
assert_nothing_raised("Successfull test") { req[1].result('loc',:ok) }
|
57
79
|
assert_instance_of(Requirement, req[1])
|
58
|
-
assert_equal(1,req[1].
|
80
|
+
assert_equal(1,req[1].test_defined?)
|
59
81
|
assert_true(req[1]['loc'])
|
60
82
|
assert_true(req[1].successfull?)
|
61
83
|
end
|
62
84
|
|
63
|
-
def test_successfull_test_without_assignment()
|
64
|
-
req = RequirementList.new()
|
65
|
-
req << Requirement.new(1)
|
66
|
-
|
67
|
-
assert_nothing_raised("Successfull test") { req.test_successfull('loc') }
|
68
|
-
assert_instance_of(Requirement, req[1])
|
69
|
-
assert_false(req[1].tested?)
|
70
|
-
assert_nil(req[1].successfull?)
|
71
|
-
end
|
72
85
|
|
73
86
|
def test_unsuccessfull_test()
|
74
|
-
req = RequirementList.new()
|
87
|
+
req = RequirementList.new(:reqId)
|
75
88
|
req << Requirement.new(1)
|
76
|
-
req.assign_test(1, 'loc')
|
89
|
+
req.assign_test(1, 'loc', Test::Unit::TestResult.new())
|
77
90
|
assert_instance_of(Requirement, req[1])
|
78
91
|
assert_equal(false, req[1]['loc'])
|
79
|
-
assert_equal(1,req[1].
|
92
|
+
assert_equal(1,req[1].test_defined?)
|
93
|
+
assert_nil(req[1].successfull?)
|
94
|
+
req[1].result('loc', Test::Unit::Failure.new(1,2,3))
|
80
95
|
assert_false(req[1].successfull?)
|
81
96
|
end
|
82
97
|
|
83
98
|
end
|
84
99
|
|
100
|
+
|
data/unittest/{unittest_requirementlist_overview.rb → unittest_requirementlist_with_tests.rb}
RENAMED
@@ -1,199 +1,257 @@
|
|
1
|
-
$:.unshift('../lib')
|
2
|
-
#~ gem 'test-unit'
|
3
|
-
#~ require 'test/unit'
|
4
|
-
require 'test4requirements.rb'
|
5
|
-
include Test4requirements
|
6
|
-
|
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
|
13
|
-
def setup
|
14
|
-
@reqs = RequirementList.new(1,2,3)
|
15
|
-
@testcase = Class.new(Test::Unit::TestCase)
|
16
|
-
@testcase.requirements= @reqs
|
17
|
-
#~ @testcase.suite() #run tests
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_overview_default()
|
21
|
-
assert_kind_of(Hash, @reqs.overview)
|
22
|
-
assert_equal([1,2,3], @reqs.overview.keys)
|
23
|
-
@reqs.overview.each{|key,req| assert_nil(req) }
|
24
|
-
end
|
25
|
-
|
26
|
-
#same as default
|
27
|
-
def test_overview_nil()
|
28
|
-
@reqs.report_type = nil
|
29
|
-
assert_kind_of(Hash, @reqs.overview)
|
30
|
-
assert_equal([1,2,3], @reqs.overview.keys)
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_overview_txt()
|
34
|
-
@reqs.report_type = :txt
|
35
|
-
assert_kind_of(Array, @reqs.overview)
|
36
|
-
assert_equal(3, @reqs.overview.size)
|
37
|
-
assert_equal(["Requirement 1 was not tested",
|
38
|
-
"Requirement 2 was not tested",
|
39
|
-
"Requirement 3 was not tested"], @reqs.overview)
|
40
|
-
end
|
41
|
-
|
42
|
-
def test_overview_unknown()
|
43
|
-
assert_raise(ArgumentError){@reqs.report_type = :unknown}
|
44
|
-
assert_nothing_raised{@reqs.overview}
|
45
|
-
assert_raise(ArgumentError){@reqs.overview(:unknown)}
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
@
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
assert_true(@testcase.instance_methods.include?(:
|
75
|
-
|
76
|
-
#~ assert_true(@testcase.respond_to?(:
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
assert_equal([
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
assert_equal(
|
97
|
-
|
98
|
-
"Requirement
|
99
|
-
|
100
|
-
|
101
|
-
end
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
self.
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
assert_equal([
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
end
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
self.
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
assert_equal([
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
end
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
self.
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
assert_equal([
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
end
|
199
|
-
|
1
|
+
$:.unshift('../lib')
|
2
|
+
#~ gem 'test-unit'
|
3
|
+
#~ require 'test/unit'
|
4
|
+
require 'test4requirements.rb'
|
5
|
+
include Test4requirements
|
6
|
+
|
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_RequirementList_Overview_without_test_execution < Test::Unit::TestCase
|
13
|
+
def setup
|
14
|
+
@reqs = RequirementList.new(:reqId, 1,2,3)
|
15
|
+
@testcase = Class.new(Test::Unit::TestCase)
|
16
|
+
@testcase.requirements= @reqs
|
17
|
+
#~ @testcase.suite() #run tests
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_overview_default()
|
21
|
+
assert_kind_of(Hash, @reqs.overview)
|
22
|
+
assert_equal([1,2,3], @reqs.overview.keys)
|
23
|
+
@reqs.overview.each{|key,req| assert_nil(req) }
|
24
|
+
end
|
25
|
+
|
26
|
+
#same as default
|
27
|
+
def test_overview_nil()
|
28
|
+
@reqs.report_type = nil
|
29
|
+
assert_kind_of(Hash, @reqs.overview)
|
30
|
+
assert_equal([1,2,3], @reqs.overview.keys)
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_overview_txt()
|
34
|
+
@reqs.report_type = :txt
|
35
|
+
assert_kind_of(Array, @reqs.overview)
|
36
|
+
assert_equal(3, @reqs.overview.size)
|
37
|
+
assert_equal(["Requirement 1 was not tested",
|
38
|
+
"Requirement 2 was not tested",
|
39
|
+
"Requirement 3 was not tested"], @reqs.overview)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_overview_unknown()
|
43
|
+
assert_raise(ArgumentError){@reqs.report_type = :unknown}
|
44
|
+
assert_nothing_raised{@reqs.overview}
|
45
|
+
assert_raise(ArgumentError){@reqs.overview(:unknown)}
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
class Test_RequirementList_Overview_with_test_execution < Test::Unit::TestCase
|
52
|
+
def setup
|
53
|
+
@reqs = RequirementList.new(:reqId, :req1,:req2,:req3)
|
54
|
+
@testcase = Class.new(Test::Unit::TestCase) do
|
55
|
+
#Set class name. Normally class name.
|
56
|
+
def self.name;'Test_ReqList';end
|
57
|
+
|
58
|
+
def test_1()
|
59
|
+
assign_requirement(:req1) #this test is testing requirement req1
|
60
|
+
assert_equal(2,1+1)
|
61
|
+
end
|
62
|
+
def test_2()
|
63
|
+
assign_requirement(:req2) #this test is testing requirement req2 without success
|
64
|
+
assert_equal(3,1+1)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
@testcase.requirements= @reqs
|
68
|
+
|
69
|
+
suite = @testcase.suite #run tests
|
70
|
+
Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
|
71
|
+
end
|
72
|
+
|
73
|
+
def test_testcase_definition()
|
74
|
+
assert_true(@testcase.instance_methods.include?(:test_1))
|
75
|
+
assert_true(@testcase.instance_methods.include?(:test_2))
|
76
|
+
#~ assert_true(@testcase.respond_to?(:test_1))
|
77
|
+
#~ assert_true(@testcase.respond_to?(:test_2))
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_overview_default()
|
81
|
+
assert_kind_of(Hash, @reqs.overview)
|
82
|
+
assert_equal([:req1,:req2,:req3], @reqs.overview.keys)
|
83
|
+
assert_equal([true,false,nil], @reqs.overview.values)
|
84
|
+
end
|
85
|
+
|
86
|
+
#same as default
|
87
|
+
def test_overview_nil()
|
88
|
+
@reqs.report_type = nil
|
89
|
+
assert_kind_of(Hash, @reqs.overview)
|
90
|
+
assert_equal([true,false,nil], @reqs.overview.values)
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_overview_txt()
|
94
|
+
@reqs.report_type = :txt
|
95
|
+
assert_kind_of(Array, @reqs.overview)
|
96
|
+
assert_equal(3, @reqs.overview.size)
|
97
|
+
assert_equal(["Requirement req1 was successfull tested (OK: test_1(Test_ReqList))",
|
98
|
+
"Requirement req2 was unsuccessfull tested (Failure: test_2(Test_ReqList))",
|
99
|
+
"Requirement req3 was not tested"
|
100
|
+
], @reqs.overview)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
|
105
|
+
|
106
|
+
class Test_two_tests_for_one_requirement_successfull < Test::Unit::TestCase
|
107
|
+
def setup
|
108
|
+
@reqs = reqs = RequirementList.new(:reqId, :req1)
|
109
|
+
testcase = Class.new(Test::Unit::TestCase) do
|
110
|
+
#Set class name. Normally class name.
|
111
|
+
def self.name;'Test_ReqList';end
|
112
|
+
self.requirements= reqs
|
113
|
+
|
114
|
+
def test_1()
|
115
|
+
assign_requirement(:req1) #this test is testing requirement req1
|
116
|
+
assert_equal(2,1+1)
|
117
|
+
end
|
118
|
+
def test_2()
|
119
|
+
assign_requirement(:req1) #this test is testing requirement req2 without success
|
120
|
+
assert_equal(2,1+1)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
suite = testcase.suite #run tests
|
125
|
+
Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
|
126
|
+
end
|
127
|
+
def test_duplicate_test
|
128
|
+
assert_equal([:req1], @reqs.overview.keys)
|
129
|
+
assert_equal([true], @reqs.overview.values)
|
130
|
+
end
|
131
|
+
def test_overview_txt()
|
132
|
+
@reqs.report_type = :txt
|
133
|
+
assert_equal(["Requirement req1 was successfull tested (OK: test_1(Test_ReqList), test_2(Test_ReqList))",], @reqs.overview)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
class Test_two_tests_for_one_requirement_unsuccessfull < Test::Unit::TestCase
|
138
|
+
def setup
|
139
|
+
@reqs = reqs = RequirementList.new(:reqId, :req1)
|
140
|
+
testcase = Class.new(Test::Unit::TestCase) do
|
141
|
+
#Set class name. Normally class name.
|
142
|
+
def self.name;'Test_ReqList';end
|
143
|
+
self.requirements= reqs
|
144
|
+
#Unsuccessfull
|
145
|
+
def test_1()
|
146
|
+
assign_requirement(:req1) #this test is testing requirement req1
|
147
|
+
assert_equal(3,1+1)
|
148
|
+
end
|
149
|
+
#Unsuccessfull
|
150
|
+
def test_2()
|
151
|
+
assign_requirement(:req1) #this test is testing requirement req2 without success
|
152
|
+
assert_equal(3,1+1)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
suite = testcase.suite #run tests
|
157
|
+
Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
|
158
|
+
end
|
159
|
+
def test_duplicate_test
|
160
|
+
assert_equal([:req1], @reqs.overview.keys)
|
161
|
+
assert_equal([false], @reqs.overview.values)
|
162
|
+
end
|
163
|
+
def test_overview_txt()
|
164
|
+
@reqs.report_type = :txt
|
165
|
+
assert_equal(["Requirement req1 was unsuccessfull tested (Failure: test_1(Test_ReqList), test_2(Test_ReqList))",], @reqs.overview)
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
class Test_two_tests_for_one_requirement_mixed_result < Test::Unit::TestCase
|
170
|
+
def setup
|
171
|
+
@reqs = reqs = RequirementList.new(:reqId, :req1)
|
172
|
+
testcase = Class.new(Test::Unit::TestCase) do
|
173
|
+
#Set class name. Normally class name.
|
174
|
+
def self.name;'Test_ReqList';end
|
175
|
+
self.requirements= reqs
|
176
|
+
#Successfull
|
177
|
+
def test_1()
|
178
|
+
assign_requirement(:req1) #this test is testing requirement req1
|
179
|
+
assert_equal(2,1+1)
|
180
|
+
end
|
181
|
+
#Unsuccessfull
|
182
|
+
def test_2()
|
183
|
+
assign_requirement(:req1) #this test is testing requirement req2 without success
|
184
|
+
assert_equal(3,1+1)
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
suite = testcase.suite #run tests
|
189
|
+
Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
|
190
|
+
end
|
191
|
+
def test_duplicate_test
|
192
|
+
assert_equal([:req1], @reqs.overview.keys)
|
193
|
+
assert_equal([false], @reqs.overview.values)
|
194
|
+
end
|
195
|
+
def test_overview_txt()
|
196
|
+
@reqs.report_type = :txt
|
197
|
+
assert_equal(["Requirement req1 was unsuccessfull tested (OK: test_1(Test_ReqList), Failure: test_2(Test_ReqList))",], @reqs.overview)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
class Test_pend < Test::Unit::TestCase
|
204
|
+
def setup
|
205
|
+
@reqs = reqs = RequirementList.new(:reqId, :req_pend)
|
206
|
+
testcase = Class.new(Test::Unit::TestCase) do
|
207
|
+
#Set class name. Normally class name.
|
208
|
+
def self.name;'Test_ReqList';end
|
209
|
+
self.requirements= reqs
|
210
|
+
#Successfull
|
211
|
+
def test_pend()
|
212
|
+
assign_requirement(:req_pend)
|
213
|
+
pend("Pending")
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
suite = testcase.suite #run tests
|
218
|
+
Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
|
219
|
+
end
|
220
|
+
def test_pend
|
221
|
+
assert_equal([:req_pend], @reqs.overview.keys)
|
222
|
+
assert_equal([false], @reqs.overview.values)
|
223
|
+
end
|
224
|
+
def test_pend_overview_txt
|
225
|
+
@reqs.report_type = :txt
|
226
|
+
assert_equal(["Requirement req_pend was unsuccessfull tested (Pending: test_pend(Test_ReqList))",], @reqs.overview)
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
class Test_omit < Test::Unit::TestCase
|
231
|
+
def setup
|
232
|
+
@reqs = reqs = RequirementList.new(:reqId, :req_omit)
|
233
|
+
testcase = Class.new(Test::Unit::TestCase) do
|
234
|
+
#Set class name. Normally class name.
|
235
|
+
def self.name;'Test_ReqList';end
|
236
|
+
self.requirements= reqs
|
237
|
+
def test_omit()
|
238
|
+
assign_requirement(:req_omit)
|
239
|
+
omit("omiting") if true
|
240
|
+
end
|
241
|
+
end
|
242
|
+
|
243
|
+
suite = testcase.suite #run tests
|
244
|
+
Test::Unit::UI::Console::TestRunner.run(suite, :output => IO_Catcher)
|
245
|
+
end
|
246
|
+
def test_omit
|
247
|
+
assert_equal([:req_omit], @reqs.overview.keys)
|
248
|
+
assert_equal([false], @reqs.overview.values)
|
249
|
+
end
|
250
|
+
def test_omit_overview_txt()
|
251
|
+
@reqs.report_type = :txt
|
252
|
+
assert_equal(["Requirement req_omit was unsuccessfull tested (Omission: test_omit(Test_ReqList))"], @reqs.overview)
|
253
|
+
end
|
254
|
+
end
|
255
|
+
|
256
|
+
|
257
|
+
|