assert 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +3 -1
- data/README.rdoc +6 -6
- data/Rakefile +2 -3
- data/assert.gemspec +1 -0
- data/lib/assert/assertions.rb +30 -30
- data/lib/assert/context.rb +71 -66
- data/lib/assert/macro.rb +14 -0
- data/lib/assert/macros/methods.rb +52 -0
- data/lib/assert/rake_tasks.rb +31 -13
- data/lib/assert/result.rb +12 -4
- data/lib/assert/result_set.rb +2 -2
- data/lib/assert/runner.rb +2 -6
- data/lib/assert/setup/autorun.rb +0 -1
- data/lib/assert/suite.rb +19 -15
- data/lib/assert/test.rb +6 -17
- data/lib/assert/version.rb +1 -1
- data/lib/assert/view/base.rb +1 -1
- data/lib/assert/view/terminal.rb +8 -30
- data/test/assertions/assert_block_test.rb +1 -1
- data/test/assertions/assert_empty_test.rb +43 -0
- data/test/assertions/assert_equal_test.rb +43 -0
- data/test/assertions/assert_includes_test.rb +44 -0
- data/test/assertions/assert_instance_of_test.rb +4 -4
- data/test/assertions/assert_kind_of_test.rb +3 -3
- data/test/assertions/assert_match_test.rb +43 -0
- data/test/assertions/assert_nil_test.rb +43 -0
- data/test/assertions/assert_not_block_test.rb +1 -1
- data/test/assertions/assert_not_empty_test.rb +43 -0
- data/test/assertions/assert_not_equal_test.rb +43 -0
- data/test/assertions/assert_not_included_test.rb +44 -0
- data/test/assertions/assert_not_instance_of_test.rb +4 -4
- data/test/assertions/assert_not_kind_of_test.rb +2 -2
- data/test/assertions/assert_not_match_test.rb +43 -0
- data/test/assertions/assert_not_nil_test.rb +43 -0
- data/test/assertions/assert_not_respond_to_test.rb +6 -6
- data/test/assertions/assert_not_same_test.rb +45 -0
- data/test/assertions/assert_respond_to_test.rb +6 -6
- data/test/assertions/assert_same_test.rb +45 -0
- data/test/assertions_test.rb +21 -298
- data/test/context/class_methods_test.rb +81 -112
- data/test/context_test.rb +35 -40
- data/test/helper.rb +5 -2
- data/test/irb.rb +2 -5
- data/test/macro_test.rb +99 -0
- data/test/options_test.rb +2 -2
- data/test/result_set_test.rb +47 -54
- data/test/result_test.rb +4 -17
- data/test/runner_test.rb +2 -10
- data/test/suite_test.rb +85 -13
- data/test/test/running_test.rb +19 -28
- data/test/test_test.rb +130 -128
- data/test/view_test.rb +3 -17
- 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
|
-
|
31
|
-
"
|
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
|
-
|
31
|
-
"
|
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."
|
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
|
-
|
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
|
-
|
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 = [
|
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"
|
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
|
-
|
31
|
-
"
|
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
|