assert 2.17.0 → 2.18.4

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