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.
- 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
|