assert 2.17.0 → 2.18.4

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.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/README.md +66 -41
  4. data/assert.gemspec +2 -3
  5. data/lib/assert.rb +0 -10
  6. data/lib/assert/actual_value.rb +127 -0
  7. data/lib/assert/assert_runner.rb +0 -3
  8. data/lib/assert/assertions.rb +10 -23
  9. data/lib/assert/cli.rb +30 -46
  10. data/lib/assert/config.rb +0 -4
  11. data/lib/assert/config_helpers.rb +0 -4
  12. data/lib/assert/context.rb +18 -9
  13. data/lib/assert/context/let_dsl.rb +13 -0
  14. data/lib/assert/context/method_missing.rb +19 -0
  15. data/lib/assert/context/setup_dsl.rb +0 -4
  16. data/lib/assert/context/subject_dsl.rb +23 -28
  17. data/lib/assert/context/suite_dsl.rb +0 -4
  18. data/lib/assert/context/test_dsl.rb +0 -4
  19. data/lib/assert/context_info.rb +0 -4
  20. data/lib/assert/default_runner.rb +0 -4
  21. data/lib/assert/default_suite.rb +0 -5
  22. data/lib/assert/default_view.rb +0 -4
  23. data/lib/assert/factory.rb +0 -3
  24. data/lib/assert/file_line.rb +0 -4
  25. data/lib/assert/macro.rb +0 -3
  26. data/lib/assert/macros/methods.rb +4 -10
  27. data/lib/assert/result.rb +2 -17
  28. data/lib/assert/runner.rb +0 -3
  29. data/lib/assert/stub.rb +15 -1
  30. data/lib/assert/suite.rb +0 -4
  31. data/lib/assert/test.rb +2 -7
  32. data/lib/assert/utils.rb +0 -4
  33. data/lib/assert/version.rb +1 -1
  34. data/lib/assert/view.rb +0 -3
  35. data/lib/assert/view_helpers.rb +0 -11
  36. data/log/{.gitkeep → .keep} +0 -0
  37. data/test/helper.rb +23 -29
  38. data/test/support/factory.rb +14 -0
  39. data/test/support/inherited_stuff.rb +0 -2
  40. data/test/system/stub_tests.rb +332 -352
  41. data/test/system/test_tests.rb +98 -124
  42. data/test/unit/actual_value_tests.rb +335 -0
  43. data/test/unit/assert_tests.rb +121 -46
  44. data/test/unit/assertions/assert_block_tests.rb +30 -35
  45. data/test/unit/assertions/assert_empty_tests.rb +33 -35
  46. data/test/unit/assertions/assert_equal_tests.rb +75 -83
  47. data/test/unit/assertions/assert_file_exists_tests.rb +32 -36
  48. data/test/unit/assertions/assert_includes_tests.rb +38 -41
  49. data/test/unit/assertions/assert_instance_of_tests.rb +34 -37
  50. data/test/unit/assertions/assert_kind_of_tests.rb +34 -37
  51. data/test/unit/assertions/assert_match_tests.rb +34 -37
  52. data/test/unit/assertions/assert_nil_tests.rb +30 -35
  53. data/test/unit/assertions/assert_raises_tests.rb +54 -60
  54. data/test/unit/assertions/assert_respond_to_tests.rb +36 -39
  55. data/test/unit/assertions/assert_same_tests.rb +86 -88
  56. data/test/unit/assertions/assert_true_false_tests.rb +60 -66
  57. data/test/unit/assertions_tests.rb +14 -17
  58. data/test/unit/config_helpers_tests.rb +41 -39
  59. data/test/unit/config_tests.rb +38 -37
  60. data/test/unit/context/let_dsl_tests.rb +10 -0
  61. data/test/unit/context/setup_dsl_tests.rb +68 -87
  62. data/test/unit/context/subject_dsl_tests.rb +15 -49
  63. data/test/unit/context/suite_dsl_tests.rb +15 -20
  64. data/test/unit/context/test_dsl_tests.rb +50 -57
  65. data/test/unit/context_info_tests.rb +23 -18
  66. data/test/unit/context_tests.rb +183 -194
  67. data/test/unit/default_runner_tests.rb +1 -7
  68. data/test/unit/default_suite_tests.rb +57 -56
  69. data/test/unit/factory_tests.rb +5 -6
  70. data/test/unit/file_line_tests.rb +33 -39
  71. data/test/unit/macro_tests.rb +14 -18
  72. data/test/unit/result_tests.rb +159 -196
  73. data/test/unit/runner_tests.rb +64 -71
  74. data/test/unit/suite_tests.rb +58 -59
  75. data/test/unit/test_tests.rb +125 -136
  76. data/test/unit/utils_tests.rb +43 -54
  77. data/test/unit/view_helpers_tests.rb +54 -58
  78. data/test/unit/view_tests.rb +22 -27
  79. metadata +15 -10
  80. data/tmp/.gitkeep +0 -0
@@ -4,68 +4,65 @@ require "assert/assertions"
4
4
  require "assert/utils"
5
5
 
6
6
  module Assert::Assertions
7
-
8
7
  class AssertIncludesTests < Assert::Context
9
8
  include Assert::Test::TestHelpers
10
9
 
11
10
  desc "`assert_includes`"
12
- setup do
13
- desc = @desc = "assert includes fail desc"
14
- args = @args = [2, [1], desc]
15
- @test = Factory.test do
11
+ subject {
12
+ args = args1
13
+ Factory.test do
16
14
  assert_includes(1, [1]) # pass
17
- assert_includes(*args) # fail
15
+ assert_includes(*args) # fail
18
16
  end
19
- @c = @test.config
20
- @test.run(&test_run_callback)
21
- end
22
- subject{ @test }
17
+ }
18
+
19
+ let(:desc1) { "assert includes fail desc" }
20
+ let(:args1) { [2, [1], desc1] }
21
+ let(:config1) { subject.config }
23
22
 
24
23
  should "produce results as expected" do
25
- assert_equal 2, test_run_result_count
26
- assert_equal 1, test_run_result_count(:pass)
27
- assert_equal 1, test_run_result_count(:fail)
28
- end
24
+ subject.run(&test_run_callback)
29
25
 
30
- should "have a fail message with custom and generic explanations" do
31
- exp = "#{@args[2]}\n"\
32
- "Expected #{Assert::U.show(@args[1], @c)}"\
33
- " to include #{Assert::U.show(@args[0], @c)}."
34
- assert_equal exp, test_run_results(:fail).first.message
35
- end
26
+ assert_that(test_run_result_count).equals(2)
27
+ assert_that(test_run_result_count(:pass)).equals(1)
28
+ assert_that(test_run_result_count(:fail)).equals(1)
36
29
 
30
+ exp =
31
+ "#{args1[2]}\n"\
32
+ "Expected #{Assert::U.show(args1[1], config1)}"\
33
+ " to include #{Assert::U.show(args1[0], config1)}."
34
+ assert_that(test_run_results(:fail).first.message).equals(exp)
35
+ end
37
36
  end
38
37
 
39
38
  class AssertNotIncludedTests < Assert::Context
40
39
  include Assert::Test::TestHelpers
41
40
 
42
41
  desc "`assert_not_included`"
43
- setup do
44
- desc = @desc = "assert not included fail desc"
45
- args = @args = [1, [1], desc]
46
- @test = Factory.test do
42
+ subject {
43
+ args = args1
44
+ Factory.test do
47
45
  assert_not_included(2, [1]) # pass
48
- assert_not_included(*args) # fail
46
+ assert_not_included(*args) # fail
49
47
  end
50
- @c = @test.config
51
- @test.run(&test_run_callback)
52
- end
53
- subject{ @test }
48
+ }
49
+
50
+ let(:desc1) { "assert not included fail desc" }
51
+ let(:args1) { [1, [1], desc1] }
52
+ let(:config1) { subject.config }
54
53
 
55
54
  should "produce results as expected" do
56
- assert_equal 2, test_run_result_count
57
- assert_equal 1, test_run_result_count(:pass)
58
- assert_equal 1, test_run_result_count(:fail)
59
- end
55
+ subject.run(&test_run_callback)
60
56
 
61
- should "have a fail message with custom and generic explanations" do
62
- exp = "#{@args[2]}\n"\
63
- "Expected #{Assert::U.show(@args[1], @c)}"\
64
- " to not include #{Assert::U.show(@args[0], @c)}."
65
- assert_equal exp, test_run_results(:fail).first.message
66
- end
57
+ assert_that(test_run_result_count).equals(2)
58
+ assert_that(test_run_result_count(:pass)).equals(1)
59
+ assert_that(test_run_result_count(:fail)).equals(1)
67
60
 
61
+ exp =
62
+ "#{args1[2]}\n"\
63
+ "Expected #{Assert::U.show(args1[1], config1)}"\
64
+ " to not include #{Assert::U.show(args1[0], config1)}."
65
+ assert_that(test_run_results(:fail).first.message).equals(exp)
66
+ end
68
67
  end
69
-
70
68
  end
71
-
@@ -4,66 +4,63 @@ require "assert/assertions"
4
4
  require "assert/utils"
5
5
 
6
6
  module Assert::Assertions
7
-
8
7
  class AssertInstanceOfTests < Assert::Context
9
8
  include Assert::Test::TestHelpers
10
9
 
11
10
  desc "`assert_instance_of`"
12
- setup do
13
- desc = @desc = "assert instance of fail desc"
14
- args = @args = [Array, "object", desc]
15
- @test = Factory.test do
11
+ subject {
12
+ args = args1
13
+ Factory.test do
16
14
  assert_instance_of(String, "object") # pass
17
15
  assert_instance_of(*args) # fail
18
16
  end
19
- @c = @test.config
20
- @test.run(&test_run_callback)
21
- end
22
- subject{ @test }
17
+ }
18
+
19
+ let(:desc1) { "assert instance of fail desc" }
20
+ let(:args1) { [Array, "object", desc1] }
21
+ let(:config1) { subject.config }
23
22
 
24
23
  should "produce results as expected" do
25
- assert_equal 2, test_run_result_count
26
- assert_equal 1, test_run_result_count(:pass)
27
- assert_equal 1, test_run_result_count(:fail)
28
- end
24
+ subject.run(&test_run_callback)
29
25
 
30
- should "have a fail message with custom and generic explanations" do
31
- exp = "#{@args[2]}\nExpected #{Assert::U.show(@args[1], @c)} (#{@args[1].class})"\
32
- " to be an instance of #{@args[0]}."
33
- assert_equal exp, test_run_results(:fail).first.message
34
- end
26
+ assert_that(test_run_result_count).equals(2)
27
+ assert_that(test_run_result_count(:pass)).equals(1)
28
+ assert_that(test_run_result_count(:fail)).equals(1)
35
29
 
30
+ exp =
31
+ "#{args1[2]}\nExpected #{Assert::U.show(args1[1], config1)} (#{args1[1].class})"\
32
+ " to be an instance of #{args1[0]}."
33
+ assert_that(test_run_results(:fail).first.message).equals(exp)
34
+ end
36
35
  end
37
36
 
38
37
  class AssertNotInstanceOfTests < Assert::Context
39
38
  include Assert::Test::TestHelpers
40
39
 
41
40
  desc "`assert_not_instance_of`"
42
- setup do
43
- desc = @desc = "assert not instance of fail desc"
44
- args = @args = [String, "object", desc]
45
- @test = Factory.test do
41
+ subject {
42
+ args = args1
43
+ Factory.test do
46
44
  assert_not_instance_of(*args) # fail
47
45
  assert_not_instance_of(Array, "object") # pass
48
46
  end
49
- @c = @test.config
50
- @test.run(&test_run_callback)
51
- end
52
- subject{ @test }
47
+ }
48
+
49
+ let(:desc1) { "assert not instance of fail desc" }
50
+ let(:args1) { [String, "object", desc1] }
51
+ let(:config1) { subject.config }
53
52
 
54
53
  should "produce results as expected" do
55
- assert_equal 2, test_run_result_count
56
- assert_equal 1, test_run_result_count(:pass)
57
- assert_equal 1, test_run_result_count(:fail)
58
- end
54
+ subject.run(&test_run_callback)
59
55
 
60
- should "have a fail message with custom and generic explanations" do
61
- exp = "#{@args[2]}\nExpected #{Assert::U.show(@args[1], @c)} (#{@args[1].class})"\
62
- " to not be an instance of #{@args[0]}."
63
- assert_equal exp, test_run_results(:fail).first.message
64
- end
56
+ assert_that(test_run_result_count).equals(2)
57
+ assert_that(test_run_result_count(:pass)).equals(1)
58
+ assert_that(test_run_result_count(:fail)).equals(1)
65
59
 
60
+ exp =
61
+ "#{args1[2]}\nExpected #{Assert::U.show(args1[1], config1)} (#{args1[1].class})"\
62
+ " to not be an instance of #{args1[0]}."
63
+ assert_that(test_run_results(:fail).first.message).equals(exp)
64
+ end
66
65
  end
67
-
68
66
  end
69
-
@@ -4,66 +4,63 @@ require "assert/assertions"
4
4
  require "assert/utils"
5
5
 
6
6
  module Assert::Assertions
7
-
8
7
  class AssertKindOfTests < Assert::Context
9
8
  include Assert::Test::TestHelpers
10
9
 
11
10
  desc "`assert_kind_of`"
12
- setup do
13
- desc = @desc = "assert kind of fail desc"
14
- args = @args = [Array, "object", desc]
15
- @test = Factory.test do
11
+ subject {
12
+ args = args1
13
+ Factory.test do
16
14
  assert_kind_of(String, "object") # pass
17
15
  assert_kind_of(*args) # fail
18
16
  end
19
- @c = @test.config
20
- @test.run(&test_run_callback)
21
- end
22
- subject{ @test }
17
+ }
18
+
19
+ let(:desc1) { "assert kind of fail desc" }
20
+ let(:args1) { [Array, "object", desc1] }
21
+ let(:config1) { subject.config }
23
22
 
24
23
  should "produce results as expected" do
25
- assert_equal 2, test_run_result_count
26
- assert_equal 1, test_run_result_count(:pass)
27
- assert_equal 1, test_run_result_count(:fail)
28
- end
24
+ subject.run(&test_run_callback)
29
25
 
30
- should "have a fail message with custom and generic explanations" do
31
- exp = "#{@args[2]}\nExpected #{Assert::U.show(@args[1], @c)} (#{@args[1].class})"\
32
- " to be a kind of #{@args[0]}."
33
- assert_equal exp, test_run_results(:fail).first.message
34
- end
26
+ assert_that(test_run_result_count).equals(2)
27
+ assert_that(test_run_result_count(:pass)).equals(1)
28
+ assert_that(test_run_result_count(:fail)).equals(1)
35
29
 
30
+ exp =
31
+ "#{args1[2]}\nExpected #{Assert::U.show(args1[1], config1)} (#{args1[1].class})"\
32
+ " to be a kind of #{args1[0]}."
33
+ assert_that(test_run_results(:fail).first.message).equals(exp)
34
+ end
36
35
  end
37
36
 
38
37
  class AssertNotKindOfTests < Assert::Context
39
38
  include Assert::Test::TestHelpers
40
39
 
41
40
  desc "`assert_not_kind_of`"
42
- setup do
43
- desc = @desc = "assert not kind of fail desc"
44
- args = @args = [String, "object", desc]
45
- @test = Factory.test do
41
+ subject {
42
+ args = args1
43
+ Factory.test do
46
44
  assert_not_kind_of(*args) # fail
47
45
  assert_not_kind_of(Array, "object") # pass
48
46
  end
49
- @c = @test.config
50
- @test.run(&test_run_callback)
51
- end
52
- subject{ @test }
47
+ }
48
+
49
+ let(:desc1) { "assert not kind of fail desc" }
50
+ let(:args1) { [String, "object", desc1] }
51
+ let(:config1) { subject.config }
53
52
 
54
53
  should "produce results as expected" do
55
- assert_equal 2, test_run_result_count
56
- assert_equal 1, test_run_result_count(:pass)
57
- assert_equal 1, test_run_result_count(:fail)
58
- end
54
+ subject.run(&test_run_callback)
59
55
 
60
- should "have a fail message with custom and generic explanations" do
61
- exp = "#{@args[2]}\nExpected #{Assert::U.show(@args[1], @c)} (#{@args[1].class})"\
62
- " to not be a kind of #{@args[0]}."
63
- assert_equal exp, test_run_results(:fail).first.message
64
- end
56
+ assert_that(test_run_result_count).equals(2)
57
+ assert_that(test_run_result_count(:pass)).equals(1)
58
+ assert_that(test_run_result_count(:fail)).equals(1)
65
59
 
60
+ exp =
61
+ "#{args1[2]}\nExpected #{Assert::U.show(args1[1], config1)} (#{args1[1].class})"\
62
+ " to not be a kind of #{args1[0]}."
63
+ assert_that(test_run_results(:fail).first.message).equals(exp)
64
+ end
66
65
  end
67
-
68
66
  end
69
-
@@ -4,66 +4,63 @@ require "assert/assertions"
4
4
  require "assert/utils"
5
5
 
6
6
  module Assert::Assertions
7
-
8
7
  class AssertMatchTests < Assert::Context
9
8
  include Assert::Test::TestHelpers
10
9
 
11
10
  desc "`assert_match`"
12
- setup do
13
- desc = @desc = "assert match fail desc"
14
- args = @args = ["not", "a string", desc]
15
- @test = Factory.test do
11
+ subject {
12
+ args = args1
13
+ Factory.test do
16
14
  assert_match(/a/, "a string") # pass
17
15
  assert_match(*args) # fail
18
16
  end
19
- @c = @test.config
20
- @test.run(&test_run_callback)
21
- end
22
- subject{ @test }
17
+ }
18
+
19
+ let(:desc1) { "assert match fail desc" }
20
+ let(:args1) { ["not", "a string", desc1] }
21
+ let(:config1) { subject.config }
23
22
 
24
23
  should "produce results as expected" do
25
- assert_equal 2, test_run_result_count
26
- assert_equal 1, test_run_result_count(:pass)
27
- assert_equal 1, test_run_result_count(:fail)
28
- end
24
+ subject.run(&test_run_callback)
29
25
 
30
- should "have a fail message with custom and generic explanations" do
31
- exp = "#{@args[2]}\nExpected #{Assert::U.show(@args[1], @c)}"\
32
- " to match #{Assert::U.show(@args[0], @c)}."
33
- assert_equal exp, test_run_results(:fail).first.message
34
- end
26
+ assert_that(test_run_result_count).equals(2)
27
+ assert_that(test_run_result_count(:pass)).equals(1)
28
+ assert_that(test_run_result_count(:fail)).equals(1)
35
29
 
30
+ exp =
31
+ "#{args1[2]}\nExpected #{Assert::U.show(args1[1], config1)}"\
32
+ " to match #{Assert::U.show(args1[0], config1)}."
33
+ assert_that(test_run_results(:fail).first.message).equals(exp)
34
+ end
36
35
  end
37
36
 
38
37
  class AssertNotMatchTests < Assert::Context
39
38
  include Assert::Test::TestHelpers
40
39
 
41
40
  desc "`assert_not_match`"
42
- setup do
43
- desc = @desc = "assert not match fail desc"
44
- args = @args = [/a/, "a string", desc]
45
- @test = Factory.test do
41
+ subject {
42
+ args = args1
43
+ Factory.test do
46
44
  assert_not_match(*args) # fail
47
45
  assert_not_match("not", "a string") # pass
48
46
  end
49
- @c = @test.config
50
- @test.run(&test_run_callback)
51
- end
52
- subject{ @test }
47
+ }
48
+
49
+ let(:desc1) { "assert not match fail desc" }
50
+ let(:args1) { [/a/, "a string", desc1] }
51
+ let(:config1) { subject.config }
53
52
 
54
53
  should "produce results as expected" do
55
- assert_equal 2, test_run_result_count
56
- assert_equal 1, test_run_result_count(:pass)
57
- assert_equal 1, test_run_result_count(:fail)
58
- end
54
+ subject.run(&test_run_callback)
59
55
 
60
- should "have a fail message with custom and generic explanations" do
61
- exp = "#{@args[2]}\nExpected #{Assert::U.show(@args[1], @c)}"\
62
- " to not match #{Assert::U.show(@args[0], @c)}."
63
- assert_equal exp, test_run_results(:fail).first.message
64
- end
56
+ assert_that(test_run_result_count).equals(2)
57
+ assert_that(test_run_result_count(:pass)).equals(1)
58
+ assert_that(test_run_result_count(:fail)).equals(1)
65
59
 
60
+ exp =
61
+ "#{args1[2]}\nExpected #{Assert::U.show(args1[1], config1)}"\
62
+ " to not match #{Assert::U.show(args1[0], config1)}."
63
+ assert_that(test_run_results(:fail).first.message).equals(exp)
64
+ end
66
65
  end
67
-
68
66
  end
69
-
@@ -4,64 +4,59 @@ require "assert/assertions"
4
4
  require "assert/utils"
5
5
 
6
6
  module Assert::Assertions
7
-
8
7
  class AssertNilTests < Assert::Context
9
8
  include Assert::Test::TestHelpers
10
9
 
11
10
  desc "`assert_nil`"
12
- setup do
13
- desc = @desc = "assert nil empty fail desc"
14
- args = @args = [1, desc]
15
- @test = Factory.test do
11
+ subject {
12
+ args = args1
13
+ Factory.test do
16
14
  assert_nil(nil) # pass
17
15
  assert_nil(*args) # fail
18
16
  end
19
- @c = @test.config
20
- @test.run(&test_run_callback)
21
- end
22
- subject{ @test }
17
+ }
18
+
19
+ let(:desc1) { "assert nil empty fail desc" }
20
+ let(:args1) { [1, desc1] }
21
+ let(:config1) { subject.config }
23
22
 
24
23
  should "produce results as expected" do
25
- assert_equal 2, test_run_result_count
26
- assert_equal 1, test_run_result_count(:pass)
27
- assert_equal 1, test_run_result_count(:fail)
28
- end
24
+ subject.run(&test_run_callback)
29
25
 
30
- should "have a fail message with custom and generic explanations" do
31
- exp = "#{@args[1]}\nExpected #{Assert::U.show(@args[0], @c)} to be nil."
32
- assert_equal exp, test_run_results(:fail).first.message
33
- end
26
+ assert_that(test_run_result_count).equals(2)
27
+ assert_that(test_run_result_count(:pass)).equals(1)
28
+ assert_that(test_run_result_count(:fail)).equals(1)
34
29
 
30
+ exp = "#{args1[1]}\nExpected #{Assert::U.show(args1[0], config1)} to be nil."
31
+ assert_that(test_run_results(:fail).first.message).equals(exp)
32
+ end
35
33
  end
36
34
 
37
35
  class AssertNotNilTests < Assert::Context
38
36
  include Assert::Test::TestHelpers
39
37
 
40
38
  desc "`assert_not_nil`"
41
- setup do
42
- desc = @desc = "assert not nil empty fail desc"
43
- args = @args = [nil, desc]
44
- @test = Factory.test do
39
+ subject {
40
+ args = args1
41
+ Factory.test do
45
42
  assert_not_nil(1) # pass
46
43
  assert_not_nil(*args) # fail
47
44
  end
48
- @c = @test.config
49
- @test.run(&test_run_callback)
50
- end
51
- subject{ @test }
45
+ }
46
+
47
+ let(:desc1) { "assert not nil empty fail desc" }
48
+ let(:args1) { [nil, desc1] }
49
+ let(:config1) { subject.config }
52
50
 
53
51
  should "produce results as expected" do
54
- assert_equal 2, test_run_result_count
55
- assert_equal 1, test_run_result_count(:pass)
56
- assert_equal 1, test_run_result_count(:fail)
57
- end
52
+ subject.run(&test_run_callback)
58
53
 
59
- should "have a fail message with custom and generic explanations" do
60
- exp = "#{@args[1]}\nExpected #{Assert::U.show(@args[0], @c)} to not be nil."
61
- assert_equal exp, test_run_results(:fail).first.message
62
- end
54
+ assert_that(test_run_result_count).equals(2)
55
+ assert_that(test_run_result_count(:pass)).equals(1)
56
+ assert_that(test_run_result_count(:fail)).equals(1)
63
57
 
58
+ exp = "#{args1[1]}\nExpected #{Assert::U.show(args1[0], config1)} to not be nil."
59
+ assert_that(test_run_results(:fail).first.message).equals(exp)
60
+ end
64
61
  end
65
-
66
62
  end
67
-