assert 0.1.0 → 0.2.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.
Files changed (53) hide show
  1. data/Gemfile.lock +3 -1
  2. data/README.rdoc +6 -6
  3. data/Rakefile +2 -3
  4. data/assert.gemspec +1 -0
  5. data/lib/assert/assertions.rb +30 -30
  6. data/lib/assert/context.rb +71 -66
  7. data/lib/assert/macro.rb +14 -0
  8. data/lib/assert/macros/methods.rb +52 -0
  9. data/lib/assert/rake_tasks.rb +31 -13
  10. data/lib/assert/result.rb +12 -4
  11. data/lib/assert/result_set.rb +2 -2
  12. data/lib/assert/runner.rb +2 -6
  13. data/lib/assert/setup/autorun.rb +0 -1
  14. data/lib/assert/suite.rb +19 -15
  15. data/lib/assert/test.rb +6 -17
  16. data/lib/assert/version.rb +1 -1
  17. data/lib/assert/view/base.rb +1 -1
  18. data/lib/assert/view/terminal.rb +8 -30
  19. data/test/assertions/assert_block_test.rb +1 -1
  20. data/test/assertions/assert_empty_test.rb +43 -0
  21. data/test/assertions/assert_equal_test.rb +43 -0
  22. data/test/assertions/assert_includes_test.rb +44 -0
  23. data/test/assertions/assert_instance_of_test.rb +4 -4
  24. data/test/assertions/assert_kind_of_test.rb +3 -3
  25. data/test/assertions/assert_match_test.rb +43 -0
  26. data/test/assertions/assert_nil_test.rb +43 -0
  27. data/test/assertions/assert_not_block_test.rb +1 -1
  28. data/test/assertions/assert_not_empty_test.rb +43 -0
  29. data/test/assertions/assert_not_equal_test.rb +43 -0
  30. data/test/assertions/assert_not_included_test.rb +44 -0
  31. data/test/assertions/assert_not_instance_of_test.rb +4 -4
  32. data/test/assertions/assert_not_kind_of_test.rb +2 -2
  33. data/test/assertions/assert_not_match_test.rb +43 -0
  34. data/test/assertions/assert_not_nil_test.rb +43 -0
  35. data/test/assertions/assert_not_respond_to_test.rb +6 -6
  36. data/test/assertions/assert_not_same_test.rb +45 -0
  37. data/test/assertions/assert_respond_to_test.rb +6 -6
  38. data/test/assertions/assert_same_test.rb +45 -0
  39. data/test/assertions_test.rb +21 -298
  40. data/test/context/class_methods_test.rb +81 -112
  41. data/test/context_test.rb +35 -40
  42. data/test/helper.rb +5 -2
  43. data/test/irb.rb +2 -5
  44. data/test/macro_test.rb +99 -0
  45. data/test/options_test.rb +2 -2
  46. data/test/result_set_test.rb +47 -54
  47. data/test/result_test.rb +4 -17
  48. data/test/runner_test.rb +2 -10
  49. data/test/suite_test.rb +85 -13
  50. data/test/test/running_test.rb +19 -28
  51. data/test/test_test.rb +130 -128
  52. data/test/view_test.rb +3 -17
  53. metadata +50 -7
@@ -0,0 +1,44 @@
1
+ require 'assert'
2
+
3
+ class Assert::Assertions::AssertIncludes < Assert::Context
4
+ desc "the assert_includes helper run in a test"
5
+ setup do
6
+
7
+ fail_desc = @fail_desc = "assert includes fail desc"
8
+ fail_args = @fail_args = [ 2, [ 1 ], fail_desc ]
9
+ @test = Factory.test do
10
+ assert_includes(1, [ 1 ]) # pass
11
+ assert_includes(*fail_args) # fail
12
+ end
13
+ @test.run
14
+ end
15
+ subject{ @test }
16
+
17
+ should "have 2 total results" do
18
+ assert_equal 2, subject.result_count
19
+ end
20
+ should "have 1 pass result" do
21
+ assert_equal 1, subject.result_count(:pass)
22
+ end
23
+ should "have 1 fail result" do
24
+ assert_equal 1, subject.result_count(:fail)
25
+ end
26
+
27
+ class FailMessageTest < AssertIncludes
28
+ desc "with a failed result"
29
+ setup do
30
+ @expected = [
31
+ @fail_args[2],
32
+ "Expected #{@fail_args[1].inspect} to include #{@fail_args[0].inspect}."
33
+ ].join("\n")
34
+ @fail_message = @test.fail_results.first.message
35
+ end
36
+ subject{ @fail_message }
37
+
38
+ should "have a fail message with an explanation of what failed and my fail description" do
39
+ assert_equal @expected, subject
40
+ end
41
+
42
+ end
43
+
44
+ end
@@ -27,9 +27,9 @@ class Assert::Assertions::AssertInstanceOfTest < Assert::Context
27
27
  desc "with a failed result"
28
28
  setup do
29
29
  @expected = [
30
- "Expected #{@fail_args[1].inspect} to be an instance of #{@fail_args[0]},",
31
- "not #{@fail_args[1].class}.\n#{@fail_args[2]}"
32
- ].join(" ")
30
+ @fail_args[2],
31
+ "Expected #{@fail_args[1].inspect} to be an instance of #{@fail_args[0]}, not #{@fail_args[1].class}."
32
+ ].join("\n")
33
33
  @fail_message = @test.fail_results.first.message
34
34
  end
35
35
  subject{ @fail_message }
@@ -40,4 +40,4 @@ class Assert::Assertions::AssertInstanceOfTest < Assert::Context
40
40
 
41
41
  end
42
42
 
43
- end
43
+ end
@@ -27,9 +27,9 @@ class Assert::Assertions::AssertKindOfTest < Assert::Context
27
27
  desc "with a failed result"
28
28
  setup do
29
29
  @expected = [
30
- "Expected #{@fail_args[1].inspect} to be a kind of #{@fail_args[0]},",
31
- "not #{@fail_args[1].class}.\n#{@fail_args[2]}"
32
- ].join(" ")
30
+ @fail_args[2],
31
+ "Expected #{@fail_args[1].inspect} to be a kind of #{@fail_args[0]}, not #{@fail_args[1].class}."
32
+ ].join("\n")
33
33
  @fail_message = @test.fail_results.first.message
34
34
  end
35
35
  subject{ @fail_message }
@@ -0,0 +1,43 @@
1
+ require 'assert'
2
+
3
+ class Assert::Assertions::AssertMatchTest < Assert::Context
4
+ desc "the assert_match helper run in a test"
5
+ setup do
6
+ fail_desc = @fail_desc = "assert match fail desc"
7
+ fail_args = @fail_args = [ "not", "a string", fail_desc ]
8
+ @test = Factory.test do
9
+ assert_match(/a/, "a string") # pass
10
+ assert_match(*fail_args) # fail
11
+ end
12
+ @test.run
13
+ end
14
+ subject{ @test }
15
+
16
+ should "have 2 total results" do
17
+ assert_equal 2, subject.result_count
18
+ end
19
+ should "have 1 pass result" do
20
+ assert_equal 1, subject.result_count(:pass)
21
+ end
22
+ should "have 1 fail result" do
23
+ assert_equal 1, subject.result_count(:fail)
24
+ end
25
+
26
+ class FailMessageTest < AssertMatchTest
27
+ desc "with a failed result"
28
+ setup do
29
+ @expected = [
30
+ @fail_args[2],
31
+ "Expected #{@fail_args[1].inspect} to match #{@fail_args[0].inspect}.",
32
+ ].join("\n")
33
+ @fail_message = @test.fail_results.first.message
34
+ end
35
+ subject{ @fail_message }
36
+
37
+ should "have a fail message with an explanation of what failed and my fail description" do
38
+ assert_equal @expected, subject
39
+ end
40
+
41
+ end
42
+
43
+ end
@@ -0,0 +1,43 @@
1
+ require 'assert'
2
+
3
+ class Assert::Assertions::AssertNilTest < Assert::Context
4
+ desc "the assert_nil helper run in a test"
5
+ setup do
6
+ fail_desc = @fail_desc = "assert nil empty fail desc"
7
+ fail_args = @fail_args = [ 1, fail_desc ]
8
+ @test = Factory.test do
9
+ assert_nil(nil) # pass
10
+ assert_nil(*fail_args) # fail
11
+ end
12
+ @test.run
13
+ end
14
+ subject{ @test }
15
+
16
+ should "have 2 total results" do
17
+ assert_equal 2, subject.result_count
18
+ end
19
+ should "have 1 pass result" do
20
+ assert_equal 1, subject.result_count(:pass)
21
+ end
22
+ should "have 1 fail result" do
23
+ assert_equal 1, subject.result_count(:fail)
24
+ end
25
+
26
+ class FailMessageTest < AssertNilTest
27
+ desc "with a failed result"
28
+ setup do
29
+ @expected = [
30
+ @fail_args[1],
31
+ "Expected nil, not #{@fail_args[0].inspect}.",
32
+ ].join("\n")
33
+ @fail_message = @test.fail_results.first.message
34
+ end
35
+ subject{ @fail_message }
36
+
37
+ should "have a fail message with an explanation of what failed and my fail description" do
38
+ assert_equal @expected, subject
39
+ end
40
+
41
+ end
42
+
43
+ end
@@ -25,7 +25,7 @@ class Assert::Assertions::AssertNotBlockTest < Assert::Context
25
25
  class FailMessageTest < AssertNotBlockTest
26
26
  desc "with a failed result"
27
27
  setup do
28
- @expected = [ "Expected block to return false value.", @fail_desc ].join("\n")
28
+ @expected = [@fail_desc, "Expected block to return false value."].join("\n")
29
29
  @fail_message = @test.fail_results.first.message
30
30
  end
31
31
  subject{ @fail_message }
@@ -0,0 +1,43 @@
1
+ require 'assert'
2
+
3
+ class Assert::Assertions::AssertNotEmptyTest < Assert::Context
4
+ desc "the assert_not_empty helper run in a test"
5
+ setup do
6
+ fail_desc = @fail_desc = "assert not empty fail desc"
7
+ fail_args = @fail_args = [ [], fail_desc ]
8
+ @test = Factory.test do
9
+ assert_not_empty([ 1 ]) # pass
10
+ assert_not_empty(*fail_args) # fail
11
+ end
12
+ @test.run
13
+ end
14
+ subject{ @test }
15
+
16
+ should "have 2 total results" do
17
+ assert_equal 2, subject.result_count
18
+ end
19
+ should "have 1 pass result" do
20
+ assert_equal 1, subject.result_count(:pass)
21
+ end
22
+ should "have 1 fail result" do
23
+ assert_equal 1, subject.result_count(:fail)
24
+ end
25
+
26
+ class FailMessageTest < AssertNotEmptyTest
27
+ desc "with a failed result"
28
+ setup do
29
+ @expected = [
30
+ @fail_args[1],
31
+ "Expected #{@fail_args[0].inspect} to not be empty.",
32
+ ].join("\n")
33
+ @fail_message = @test.fail_results.first.message
34
+ end
35
+ subject{ @fail_message }
36
+
37
+ should "have a fail message with an explanation of what failed and my fail description" do
38
+ assert_equal @expected, subject
39
+ end
40
+
41
+ end
42
+
43
+ end
@@ -0,0 +1,43 @@
1
+ require 'assert'
2
+
3
+ class Assert::Assertions::AssertNotEqualTest < Assert::Context
4
+ desc "the assert_not_equal helper run in a test"
5
+ setup do
6
+ fail_desc = @fail_desc = "assert not equal fail desc"
7
+ fail_args = @fail_args = [ 1, 1, fail_desc ]
8
+ @test = Factory.test do
9
+ assert_not_equal(*fail_args) # fail
10
+ assert_not_equal(1, 2) # pass
11
+ end
12
+ @test.run
13
+ end
14
+ subject{ @test }
15
+
16
+ should "have 2 total results" do
17
+ assert_equal 2, subject.result_count
18
+ end
19
+ should "have 1 pass result" do
20
+ assert_equal 1, subject.result_count(:pass)
21
+ end
22
+ should "have 1 fail result" do
23
+ assert_equal 1, subject.result_count(:fail)
24
+ end
25
+
26
+ class FailMessageTest < AssertNotEqualTest
27
+ desc "with a failed result"
28
+ setup do
29
+ @expected = [
30
+ @fail_args[2],
31
+ "#{@fail_args[0]} not expected to be equal to #{@fail_args[1]}.",
32
+ ].join("\n")
33
+ @fail_message = @test.fail_results.first.message
34
+ end
35
+ subject{ @fail_message }
36
+
37
+ should "have a fail message with an explanation of what failed and my fail description" do
38
+ assert_equal @expected, subject
39
+ end
40
+
41
+ end
42
+
43
+ end
@@ -0,0 +1,44 @@
1
+ require 'assert'
2
+
3
+ class Assert::Assertions::AssertNotIncluded < Assert::Context
4
+ desc "the assert_not_included helper run in a test"
5
+ setup do
6
+
7
+ fail_desc = @fail_desc = "assert not included fail desc"
8
+ fail_args = @fail_args = [ 1, [ 1 ], fail_desc ]
9
+ @test = Factory.test do
10
+ assert_not_included(2, [ 1 ]) # pass
11
+ assert_not_included(*fail_args) # fail
12
+ end
13
+ @test.run
14
+ end
15
+ subject{ @test }
16
+
17
+ should "have 2 total results" do
18
+ assert_equal 2, subject.result_count
19
+ end
20
+ should "have 1 pass result" do
21
+ assert_equal 1, subject.result_count(:pass)
22
+ end
23
+ should "have 1 fail result" do
24
+ assert_equal 1, subject.result_count(:fail)
25
+ end
26
+
27
+ class FailMessageTest < AssertNotIncluded
28
+ desc "with a failed result"
29
+ setup do
30
+ @expected = [
31
+ @fail_args[2],
32
+ "Expected #{@fail_args[1].inspect} to not include #{@fail_args[0].inspect}.",
33
+ ].join("\n")
34
+ @fail_message = @test.fail_results.first.message
35
+ end
36
+ subject{ @fail_message }
37
+
38
+ should "have a fail message with an explanation of what failed and my fail description" do
39
+ assert_equal @expected, subject
40
+ end
41
+
42
+ end
43
+
44
+ end
@@ -22,14 +22,14 @@ class Assert::Assertions::AssertNotInstanceOfTest < Assert::Context
22
22
  should "have 1 fail result" do
23
23
  assert_equal 1, subject.result_count(:fail)
24
24
  end
25
-
25
+
26
26
  class FailMessageTest < AssertNotInstanceOfTest
27
27
  desc "with a failed result"
28
28
  setup do
29
29
  @expected = [
30
+ @fail_args[2],
30
31
  "#{@fail_args[1].inspect} was not expected to be an instance of #{@fail_args[0]}.",
31
- "\n#{@fail_args[2]}"
32
- ].join
32
+ ].join("\n")
33
33
  @fail_message = @test.fail_results.first.message
34
34
  end
35
35
  subject{ @fail_message }
@@ -40,4 +40,4 @@ class Assert::Assertions::AssertNotInstanceOfTest < Assert::Context
40
40
 
41
41
  end
42
42
 
43
- end
43
+ end
@@ -27,9 +27,9 @@ class Assert::Assertions::AssertNotKindOfTest < Assert::Context
27
27
  desc "with a failed result"
28
28
  setup do
29
29
  @expected = [
30
+ @fail_args[2],
30
31
  "#{@fail_args[1].inspect} was not expected to be a kind of #{@fail_args[0]}.",
31
- "\n#{@fail_args[2]}"
32
- ].join
32
+ ].join("\n")
33
33
  @fail_message = @test.fail_results.first.message
34
34
  end
35
35
  subject{ @fail_message }
@@ -0,0 +1,43 @@
1
+ require 'assert'
2
+
3
+ class Assert::Assertions::AssertNotMatchTest < Assert::Context
4
+ desc "the assert_not_match helper run in a test"
5
+ setup do
6
+ fail_desc = @fail_desc = "assert not match fail desc"
7
+ fail_args = @fail_args = [ /a/, "a string", fail_desc ]
8
+ @test = Factory.test do
9
+ assert_not_match(*fail_args) # fail
10
+ assert_not_match("not", "a string") # pass
11
+ end
12
+ @test.run
13
+ end
14
+ subject{ @test }
15
+
16
+ should "have 2 total results" do
17
+ assert_equal 2, subject.result_count
18
+ end
19
+ should "have 1 pass result" do
20
+ assert_equal 1, subject.result_count(:pass)
21
+ end
22
+ should "have 1 fail result" do
23
+ assert_equal 1, subject.result_count(:fail)
24
+ end
25
+
26
+ class FailMessageTest < AssertNotMatchTest
27
+ desc "with a failed result"
28
+ setup do
29
+ @expected = [
30
+ @fail_args[2],
31
+ "#{@fail_args[1].inspect} not expected to match #{@fail_args[0].inspect}.",
32
+ ].join("\n")
33
+ @fail_message = @test.fail_results.first.message
34
+ end
35
+ subject{ @fail_message }
36
+
37
+ should "have a fail message with an explanation of what failed and my fail description" do
38
+ assert_equal @expected, subject
39
+ end
40
+
41
+ end
42
+
43
+ end
@@ -0,0 +1,43 @@
1
+ require 'assert'
2
+
3
+ class Assert::Assertions::AssertNotNilTest < Assert::Context
4
+ desc "the assert_not_nil helper run in a test"
5
+ setup do
6
+ fail_desc = @fail_desc = "assert not nil empty fail desc"
7
+ fail_args = @fail_args = [ nil, fail_desc ]
8
+ @test = Factory.test do
9
+ assert_not_nil(1) # pass
10
+ assert_not_nil(*fail_args) # fail
11
+ end
12
+ @test.run
13
+ end
14
+ subject{ @test }
15
+
16
+ should "have 2 total results" do
17
+ assert_equal 2, subject.result_count
18
+ end
19
+ should "have 1 pass result" do
20
+ assert_equal 1, subject.result_count(:pass)
21
+ end
22
+ should "have 1 fail result" do
23
+ assert_equal 1, subject.result_count(:fail)
24
+ end
25
+
26
+ class FailMessageTest < AssertNotNilTest
27
+ desc "with a failed result"
28
+ setup do
29
+ @expected = [
30
+ @fail_args[1],
31
+ "Expected #{@fail_args[0].inspect} to not be nil.",
32
+ ].join("\n")
33
+ @fail_message = @test.fail_results.first.message
34
+ end
35
+ subject{ @fail_message }
36
+
37
+ should "have a fail message with an explanation of what failed and my fail description" do
38
+ assert_equal @expected, subject
39
+ end
40
+
41
+ end
42
+
43
+ end
@@ -4,10 +4,10 @@ class Assert::Assertions::AssertNotRespondToTest < Assert::Context
4
4
  desc "the assert_not_respond_to helper run in a test"
5
5
  setup do
6
6
  fail_desc = @fail_desc = "assert not respond to fail desc"
7
- fail_args = @fail_args = [ 1, :abs, fail_desc ]
7
+ fail_args = @fail_args = [ :abs, 1, fail_desc ]
8
8
  @test = Factory.test do
9
9
  assert_not_respond_to(*fail_args) # fail
10
- assert_not_respond_to("1", :abs) # pass
10
+ assert_not_respond_to(:abs, "1") # pass
11
11
  end
12
12
  @test.run
13
13
  end
@@ -27,9 +27,9 @@ class Assert::Assertions::AssertNotRespondToTest < Assert::Context
27
27
  desc "with a failed result"
28
28
  setup do
29
29
  @expected = [
30
- "#{@fail_args[0].inspect} (#{@fail_args[0].class}) not expected to",
31
- "respond to ##{@fail_args[1]}.\n#{@fail_args[2]}"
32
- ].join(" ")
30
+ @fail_args[2],
31
+ "#{@fail_args[1].inspect} (#{@fail_args[1].class}) not expected to respond to ##{@fail_args[0]}."
32
+ ].join("\n")
33
33
  @fail_message = @test.fail_results.first.message
34
34
  end
35
35
  subject{ @fail_message }
@@ -40,4 +40,4 @@ class Assert::Assertions::AssertNotRespondToTest < Assert::Context
40
40
 
41
41
  end
42
42
 
43
- end
43
+ end