assert 0.1.0 → 0.2.0

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