assert 2.0.0.rc.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (71) hide show
  1. data/Gemfile +1 -1
  2. data/{LICENSE → LICENSE.txt} +0 -0
  3. data/Rakefile +1 -3
  4. data/assert.gemspec +15 -15
  5. data/lib/assert.rb +1 -2
  6. data/lib/assert/assert_runner.rb +2 -1
  7. data/lib/assert/assertions.rb +153 -189
  8. data/lib/assert/version.rb +1 -1
  9. data/test/helper.rb +74 -51
  10. data/test/{fixtures → support}/inherited_stuff.rb +0 -0
  11. data/test/{test → system}/running_tests.rb +16 -43
  12. data/test/{assert_test.rb → unit/assert_tests.rb} +0 -0
  13. data/test/unit/assertions/assert_block_tests.rb +57 -0
  14. data/test/unit/assertions/assert_empty_tests.rb +58 -0
  15. data/test/unit/assertions/assert_equal_tests.rb +59 -0
  16. data/test/unit/assertions/assert_file_exists_tests.rb +59 -0
  17. data/test/unit/assertions/assert_includes_tests.rb +61 -0
  18. data/test/unit/assertions/assert_instance_of_tests.rb +61 -0
  19. data/test/unit/assertions/assert_kind_of_tests.rb +60 -0
  20. data/test/unit/assertions/assert_match_tests.rb +59 -0
  21. data/test/unit/assertions/assert_nil_tests.rb +59 -0
  22. data/test/unit/assertions/assert_raises_tests.rb +73 -0
  23. data/test/unit/assertions/assert_respond_to_tests.rb +63 -0
  24. data/test/unit/assertions/assert_same_tests.rb +65 -0
  25. data/test/unit/assertions_tests.rb +65 -0
  26. data/test/unit/context/basic_singleton_tests.rb +86 -0
  27. data/test/unit/context/setup_teardown_singleton_tests.rb +105 -0
  28. data/test/unit/context/test_should_singleton_tests.rb +134 -0
  29. data/test/{context_test.rb → unit/context_tests.rb} +53 -131
  30. data/test/{macro_test.rb → unit/macro_tests.rb} +15 -11
  31. data/test/{result_test.rb → unit/result_tests.rb} +27 -26
  32. data/test/{runner_test.rb → unit/runner_tests.rb} +1 -2
  33. data/test/{suite_test.rb → unit/suite_tests.rb} +63 -95
  34. data/test/{test_test.rb → unit/test_tests.rb} +45 -77
  35. data/test/{view/base_tests.rb → unit/view_tests.rb} +0 -1
  36. metadata +63 -104
  37. data/CHANGELOG.md +0 -33
  38. data/test/assertions/assert_block_test.rb +0 -39
  39. data/test/assertions/assert_empty_test.rb +0 -43
  40. data/test/assertions/assert_equal_test.rb +0 -43
  41. data/test/assertions/assert_file_exists_test.rb +0 -43
  42. data/test/assertions/assert_includes_test.rb +0 -44
  43. data/test/assertions/assert_instance_of_test.rb +0 -43
  44. data/test/assertions/assert_kind_of_test.rb +0 -43
  45. data/test/assertions/assert_match_test.rb +0 -43
  46. data/test/assertions/assert_nil_test.rb +0 -43
  47. data/test/assertions/assert_not_block_test.rb +0 -39
  48. data/test/assertions/assert_not_empty_test.rb +0 -43
  49. data/test/assertions/assert_not_equal_test.rb +0 -43
  50. data/test/assertions/assert_not_file_exists_test.rb +0 -43
  51. data/test/assertions/assert_not_included_test.rb +0 -44
  52. data/test/assertions/assert_not_instance_of_test.rb +0 -43
  53. data/test/assertions/assert_not_kind_of_test.rb +0 -43
  54. data/test/assertions/assert_not_match_test.rb +0 -43
  55. data/test/assertions/assert_not_nil_test.rb +0 -43
  56. data/test/assertions/assert_not_respond_to_test.rb +0 -43
  57. data/test/assertions/assert_not_same_test.rb +0 -45
  58. data/test/assertions/assert_nothing_raised_test.rb +0 -46
  59. data/test/assertions/assert_raises_test.rb +0 -49
  60. data/test/assertions/assert_respond_to_test.rb +0 -43
  61. data/test/assertions/assert_same_test.rb +0 -45
  62. data/test/assertions_test.rb +0 -60
  63. data/test/context/class_methods_test.rb +0 -531
  64. data/test/fixtures/sample_context.rb +0 -13
  65. data/test/fixtures/test_root/one_test.rb +0 -0
  66. data/test/fixtures/test_root/parent/area_one/area_test.rb +0 -0
  67. data/test/fixtures/test_root/shallow/deeply/nested_test.rb +0 -0
  68. data/test/fixtures/test_root/shallow/nested_test.rb +0 -0
  69. data/test/fixtures/test_root/shallow_test.rb +0 -0
  70. data/test/fixtures/test_root/two_test.rb +0 -0
  71. data/test/suite/context_info_test.rb +0 -42
@@ -0,0 +1,59 @@
1
+ require 'assert'
2
+ require 'assert/assertions'
3
+
4
+ module Assert::Assertions
5
+
6
+ class AssertFileExistsTests < Assert::Context
7
+ desc "the assert_file_exists helper"
8
+ setup do
9
+ desc = @desc = "assert file exists empty fail desc"
10
+ args = @args = [ '/a/path/to/some/file/that/no/exists', desc ]
11
+ @test = Factory.test do
12
+ assert_file_exists(__FILE__) # pass
13
+ assert_file_exists(*args) # fail
14
+ end
15
+ @test.run
16
+ end
17
+ subject{ @test }
18
+
19
+ should "produce results as expected" do
20
+ assert_equal 2, subject.result_count
21
+ assert_equal 1, subject.result_count(:pass)
22
+ assert_equal 1, subject.result_count(:fail)
23
+ end
24
+
25
+ should "have a fail message with custom and generic explanations" do
26
+ exp = "#{@args[1]}\nExpected #{@args[0].inspect} to exist."
27
+ assert_equal exp, subject.fail_results.first.message
28
+ end
29
+
30
+ end
31
+
32
+ class AssertNotFileExistsTests < Assert::Context
33
+ desc "the assert_not_file_exists helper"
34
+ setup do
35
+ desc = @desc = "assert not file exists empty fail desc"
36
+ args = @args = [ __FILE__, desc ]
37
+ @test = Factory.test do
38
+ assert_not_file_exists('/a/path/to/some/file/that/no/exists') # pass
39
+ assert_not_file_exists(*args) # fail
40
+ end
41
+ @test.run
42
+ end
43
+ subject{ @test }
44
+
45
+ should "produce results as expected" do
46
+ assert_equal 2, subject.result_count
47
+ assert_equal 1, subject.result_count(:pass)
48
+ assert_equal 1, subject.result_count(:fail)
49
+ end
50
+
51
+ should "have a fail message with custom and generic explanations" do
52
+ exp = "#{@args[1]}\nExpected #{@args[0].inspect} to not exist."
53
+ assert_equal exp, subject.fail_results.first.message
54
+ end
55
+
56
+ end
57
+
58
+ end
59
+
@@ -0,0 +1,61 @@
1
+ require 'assert'
2
+ require 'assert/assertions'
3
+
4
+ module Assert::Assertions
5
+
6
+ class AssertIncludesTests < Assert::Context
7
+ desc "the assert_includes helper"
8
+ setup do
9
+ desc = @desc = "assert includes fail desc"
10
+ args = @args = [ 2, [ 1 ], desc ]
11
+ @test = Factory.test do
12
+ assert_includes(1, [ 1 ]) # pass
13
+ assert_includes(*args) # fail
14
+ end
15
+ @test.run
16
+ end
17
+ subject{ @test }
18
+
19
+ should "produce results as expected" do
20
+ assert_equal 2, subject.result_count
21
+ assert_equal 1, subject.result_count(:pass)
22
+ assert_equal 1, subject.result_count(:fail)
23
+ end
24
+
25
+ should "have a fail message with custom and generic explanations" do
26
+ exp = "#{@args[2]}\n"\
27
+ "Expected #{@args[1].inspect} to include #{@args[0].inspect}."
28
+ assert_equal exp, subject.fail_results.first.message
29
+ end
30
+
31
+ end
32
+
33
+ class AssertNotIncluded < Assert::Context
34
+ desc "the assert_not_included helper"
35
+ setup do
36
+ desc = @desc = "assert not included fail desc"
37
+ args = @args = [ 1, [ 1 ], desc ]
38
+ @test = Factory.test do
39
+ assert_not_included(2, [ 1 ]) # pass
40
+ assert_not_included(*args) # fail
41
+ end
42
+ @test.run
43
+ end
44
+ subject{ @test }
45
+
46
+ should "produce results as expected" do
47
+ assert_equal 2, subject.result_count
48
+ assert_equal 1, subject.result_count(:pass)
49
+ assert_equal 1, subject.result_count(:fail)
50
+ end
51
+
52
+ should "have a fail message with custom and generic explanations" do
53
+ exp = "#{@args[2]}\n"\
54
+ "Expected #{@args[1].inspect} to not include #{@args[0].inspect}."
55
+ assert_equal exp, subject.fail_results.first.message
56
+ end
57
+
58
+ end
59
+
60
+ end
61
+
@@ -0,0 +1,61 @@
1
+ require 'assert'
2
+ require 'assert/assertions'
3
+
4
+ module Assert::Assertions
5
+
6
+ class AssertInstanceOfTests < Assert::Context
7
+ desc "the assert_instance_of helper"
8
+ setup do
9
+ desc = @desc = "assert instance of fail desc"
10
+ args = @args = [ Array, "object", desc ]
11
+ @test = Factory.test do
12
+ assert_instance_of(String, "object") # pass
13
+ assert_instance_of(*args) # fail
14
+ end
15
+ @test.run
16
+ end
17
+ subject{ @test }
18
+
19
+ should "produce results as expected" do
20
+ assert_equal 2, subject.result_count
21
+ assert_equal 1, subject.result_count(:pass)
22
+ assert_equal 1, subject.result_count(:fail)
23
+ end
24
+
25
+ should "have a fail message with custom and generic explanations" do
26
+ exp = "#{@args[2]}\nExpected #{@args[1].inspect} (#{@args[1].class}) to"\
27
+ " be an instance of #{@args[0]}."
28
+ assert_equal exp, subject.fail_results.first.message
29
+ end
30
+
31
+ end
32
+
33
+ class AssertNotInstanceOfTests < Assert::Context
34
+ desc "the assert_not_instance_of helper"
35
+ setup do
36
+ desc = @desc = "assert not instance of fail desc"
37
+ args = @args = [ String, "object", desc ]
38
+ @test = Factory.test do
39
+ assert_not_instance_of(*args) # fail
40
+ assert_not_instance_of(Array, "object") # pass
41
+ end
42
+ @test.run
43
+ end
44
+ subject{ @test }
45
+
46
+ should "produce results as expected" do
47
+ assert_equal 2, subject.result_count
48
+ assert_equal 1, subject.result_count(:pass)
49
+ assert_equal 1, subject.result_count(:fail)
50
+ end
51
+
52
+ should "have a fail message with custom and generic explanations" do
53
+ exp = "#{@args[2]}\n#{@args[1].inspect} not expected to"\
54
+ " be an instance of #{@args[0]}."
55
+ assert_equal exp, subject.fail_results.first.message
56
+ end
57
+
58
+ end
59
+
60
+ end
61
+
@@ -0,0 +1,60 @@
1
+ require 'assert'
2
+ require 'assert/assertions'
3
+
4
+ module Assert::Assertions
5
+
6
+ class AssertKindOfTests < Assert::Context
7
+ desc "the assert_kind_of helper"
8
+ setup do
9
+ desc = @desc = "assert kind of fail desc"
10
+ args = @args = [ Array, "object", desc ]
11
+ @test = Factory.test do
12
+ assert_kind_of(String, "object") # pass
13
+ assert_kind_of(*args) # fail
14
+ end
15
+ @test.run
16
+ end
17
+ subject{ @test }
18
+
19
+ should "produce results as expected" do
20
+ assert_equal 2, subject.result_count
21
+ assert_equal 1, subject.result_count(:pass)
22
+ assert_equal 1, subject.result_count(:fail)
23
+ end
24
+
25
+ should "have a fail message with custom and generic explanations" do
26
+ exp = "#{@args[2]}\nExpected #{@args[1].inspect} (#{@args[1].class}) to"\
27
+ " be a kind of #{@args[0]}."
28
+ assert_equal exp, subject.fail_results.first.message
29
+ end
30
+
31
+ end
32
+
33
+ class AssertNotKindOfTests < Assert::Context
34
+ desc "the assert_not_kind_of helper"
35
+ setup do
36
+ desc = @desc = "assert not kind of fail desc"
37
+ args = @args = [ String, "object", desc ]
38
+ @test = Factory.test do
39
+ assert_not_kind_of(*args) # fail
40
+ assert_not_kind_of(Array, "object") # pass
41
+ end
42
+ @test.run
43
+ end
44
+ subject{ @test }
45
+
46
+ should "produce results as expected" do
47
+ assert_equal 2, subject.result_count
48
+ assert_equal 1, subject.result_count(:pass)
49
+ assert_equal 1, subject.result_count(:fail)
50
+ end
51
+
52
+ should "have a fail message with custom and generic explanations" do
53
+ exp = "#{@args[2]}\n#{@args[1].inspect} not expected to be a kind of #{@args[0]}."
54
+ assert_equal exp, subject.fail_results.first.message
55
+ end
56
+
57
+ end
58
+
59
+ end
60
+
@@ -0,0 +1,59 @@
1
+ require 'assert'
2
+ require 'assert/assertions'
3
+
4
+ module Assert::Assertions
5
+
6
+ class AssertMatchTests < Assert::Context
7
+ desc "the assert_match helper"
8
+ setup do
9
+ desc = @desc = "assert match fail desc"
10
+ args = @args = [ "not", "a string", desc ]
11
+ @test = Factory.test do
12
+ assert_match(/a/, "a string") # pass
13
+ assert_match(*args) # fail
14
+ end
15
+ @test.run
16
+ end
17
+ subject{ @test }
18
+
19
+ should "produce results as expected" do
20
+ assert_equal 2, subject.result_count
21
+ assert_equal 1, subject.result_count(:pass)
22
+ assert_equal 1, subject.result_count(:fail)
23
+ end
24
+
25
+ should "have a fail message with custom and generic explanations" do
26
+ exp = "#{@args[2]}\nExpected #{@args[1].inspect} to match #{@args[0].inspect}."
27
+ assert_equal exp, subject.fail_results.first.message
28
+ end
29
+
30
+ end
31
+
32
+ class AssertNotMatchTests < Assert::Context
33
+ desc "the assert_not_match helper"
34
+ setup do
35
+ desc = @desc = "assert not match fail desc"
36
+ args = @args = [ /a/, "a string", desc ]
37
+ @test = Factory.test do
38
+ assert_not_match(*args) # fail
39
+ assert_not_match("not", "a string") # pass
40
+ end
41
+ @test.run
42
+ end
43
+ subject{ @test }
44
+
45
+ should "produce results as expected" do
46
+ assert_equal 2, subject.result_count
47
+ assert_equal 1, subject.result_count(:pass)
48
+ assert_equal 1, subject.result_count(:fail)
49
+ end
50
+
51
+ should "have a fail message with custom and generic explanations" do
52
+ exp = "#{@args[2]}\n#{@args[1].inspect} not expected to match #{@args[0].inspect}."
53
+ assert_equal exp, subject.fail_results.first.message
54
+ end
55
+
56
+ end
57
+
58
+ end
59
+
@@ -0,0 +1,59 @@
1
+ require 'assert'
2
+ require 'assert/assertions'
3
+
4
+ module Assert::Assertions
5
+
6
+ class AssertNilTests < Assert::Context
7
+ desc "the assert_nil helper"
8
+ setup do
9
+ desc = @desc = "assert nil empty fail desc"
10
+ args = @args = [ 1, desc ]
11
+ @test = Factory.test do
12
+ assert_nil(nil) # pass
13
+ assert_nil(*args) # fail
14
+ end
15
+ @test.run
16
+ end
17
+ subject{ @test }
18
+
19
+ should "produce results as expected" do
20
+ assert_equal 2, subject.result_count
21
+ assert_equal 1, subject.result_count(:pass)
22
+ assert_equal 1, subject.result_count(:fail)
23
+ end
24
+
25
+ should "have a fail message with custom and generic explanations" do
26
+ exp = "#{@args[1]}\nExpected nil, not #{@args[0].inspect}."
27
+ assert_equal exp, subject.fail_results.first.message
28
+ end
29
+
30
+ end
31
+
32
+ class AssertNotNilTests < Assert::Context
33
+ desc "the assert_not_nil helper"
34
+ setup do
35
+ desc = @desc = "assert not nil empty fail desc"
36
+ args = @args = [ nil, desc ]
37
+ @test = Factory.test do
38
+ assert_not_nil(1) # pass
39
+ assert_not_nil(*args) # fail
40
+ end
41
+ @test.run
42
+ end
43
+ subject{ @test }
44
+
45
+ should "produce results as expected" do
46
+ assert_equal 2, subject.result_count
47
+ assert_equal 1, subject.result_count(:pass)
48
+ assert_equal 1, subject.result_count(:fail)
49
+ end
50
+
51
+ should "have a fail message with custom and generic explanations" do
52
+ exp = "#{@args[1]}\nExpected #{@args[0].inspect} to not be nil."
53
+ assert_equal exp, subject.fail_results.first.message
54
+ end
55
+
56
+ end
57
+
58
+ end
59
+
@@ -0,0 +1,73 @@
1
+ require 'assert'
2
+ require 'assert/assertions'
3
+
4
+ module Assert::Assertions
5
+
6
+ class AssertRaisesTests < Assert::Context
7
+ desc "the assert_raises helper"
8
+ setup do
9
+ d = @d = "assert raises fail desc"
10
+ @test = Factory.test do
11
+ assert_raises(StandardError, RuntimeError){ raise(StandardError) } # pass
12
+ assert_raises(StandardError, RuntimeError, d){ raise(Exception) } # fail
13
+ assert_raises(RuntimeError, d){ raise(StandardError) } # fail
14
+ assert_raises(RuntimeError, d){ true } # fail
15
+ assert_raises(d){ true } # fail
16
+ end
17
+ @test.run
18
+ end
19
+ subject{ @test }
20
+
21
+ should "produce results as expected" do
22
+ assert_equal 5, subject.result_count
23
+ assert_equal 1, subject.result_count(:pass)
24
+ assert_equal 4, subject.result_count(:fail)
25
+ end
26
+
27
+ should "have a fail message with custom and generic explanations" do
28
+ exp = [
29
+ "#{@d}\nStandardError or RuntimeError exception expected, not:",
30
+ "#{@d}\nRuntimeError exception expected, not:",
31
+ "#{@d}\nRuntimeError exception expected but nothing raised.",
32
+ "#{@d}\nAn exception expected but nothing raised."
33
+ ]
34
+ messages = @test.fail_results.map(&:message)
35
+ messages.each_with_index{ |msg, n| assert_match /^#{exp[n]}/, msg }
36
+ end
37
+
38
+ end
39
+
40
+ class AssertNothingRaisedTests < Assert::Context
41
+ desc "the assert_nothing_raised helper"
42
+ setup do
43
+ d = @d = "assert nothing raised fail desc"
44
+ @test = Factory.test do
45
+ anr = :assert_nothing_raised
46
+ self.send(anr, StandardError, RuntimeError, d){ raise(StandardError) } # fail
47
+ self.send(anr, RuntimeError){ raise(StandardError) } # pass
48
+ self.send(anr, d){ raise(RuntimeError) } # fail
49
+ self.send(anr){ true } # pass
50
+ end
51
+ @test.run
52
+ end
53
+ subject{ @test }
54
+
55
+ should "produce results as expected" do
56
+ assert_equal 4, subject.result_count
57
+ assert_equal 2, subject.result_count(:pass)
58
+ assert_equal 2, subject.result_count(:fail)
59
+ end
60
+
61
+ should "have a fail message with custom and generic explanations" do
62
+ exp = [
63
+ "#{@d}\nStandardError or RuntimeError exception not expected, but raised:",
64
+ "#{@d}\nAn exception not expected, but raised:"
65
+ ]
66
+ messages = @test.fail_results.map(&:message)
67
+ messages.each_with_index{ |msg, n| assert_match /^#{exp[n]}/, msg }
68
+ end
69
+
70
+ end
71
+
72
+ end
73
+
@@ -0,0 +1,63 @@
1
+ require 'assert'
2
+ require 'assert/assertions'
3
+
4
+ module Assert::Assertions
5
+
6
+ class AssertRespondToTest < Assert::Context
7
+ desc "the assert_respond_to helper"
8
+ setup do
9
+ desc = @desc = "assert respond to fail desc"
10
+ args = @args = [ :abs, "1", desc ]
11
+ @test = Factory.test do
12
+ assert_respond_to(:abs, 1) # pass
13
+ assert_respond_to(*args) # fail
14
+ end
15
+ @test.run
16
+ end
17
+ subject{ @test }
18
+
19
+ should "produce results as expected" do
20
+ assert_equal 2, subject.result_count
21
+ assert_equal 1, subject.result_count(:pass)
22
+ assert_equal 1, subject.result_count(:fail)
23
+ end
24
+
25
+ should "have a fail message with custom and generic explanations" do
26
+ exp = "#{@args[2]}\n"\
27
+ "Expected #{@args[1].inspect} (#{@args[1].class})"\
28
+ " to respond to `#{@args[0]}`."
29
+ assert_equal exp, subject.fail_results.first.message
30
+ end
31
+
32
+ end
33
+
34
+ class AssertNotRespondToTests < Assert::Context
35
+ desc "the assert_not_respond_to helper"
36
+ setup do
37
+ desc = @desc = "assert not respond to fail desc"
38
+ args = @args = [ :abs, 1, desc ]
39
+ @test = Factory.test do
40
+ assert_not_respond_to(*args) # fail
41
+ assert_not_respond_to(:abs, "1") # pass
42
+ end
43
+ @test.run
44
+ end
45
+ subject{ @test }
46
+
47
+ should "produce results as expected" do
48
+ assert_equal 2, subject.result_count
49
+ assert_equal 1, subject.result_count(:pass)
50
+ assert_equal 1, subject.result_count(:fail)
51
+ end
52
+
53
+ should "have a fail message with custom and generic explanations" do
54
+ exp = "#{@args[2]}\n"\
55
+ "#{@args[1].inspect} (#{@args[1].class})"\
56
+ " not expected to respond to `#{@args[0]}`."
57
+ assert_equal exp, subject.fail_results.first.message
58
+ end
59
+
60
+ end
61
+
62
+ end
63
+