assert 2.18.0 → 2.19.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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +66 -37
  3. data/assert.gemspec +4 -3
  4. data/lib/assert/actual_value.rb +140 -0
  5. data/lib/assert/assertions.rb +80 -20
  6. data/lib/assert/context.rb +31 -37
  7. data/lib/assert/context/let_dsl.rb +13 -0
  8. data/lib/assert/context/method_missing.rb +19 -0
  9. data/lib/assert/context/subject_dsl.rb +23 -24
  10. data/lib/assert/macros/methods.rb +4 -4
  11. data/lib/assert/result.rb +5 -1
  12. data/lib/assert/stub.rb +16 -0
  13. data/lib/assert/suite.rb +7 -10
  14. data/lib/assert/test.rb +0 -8
  15. data/lib/assert/version.rb +1 -1
  16. data/test/helper.rb +23 -25
  17. data/test/support/factory.rb +15 -0
  18. data/test/system/stub_tests.rb +332 -333
  19. data/test/system/test_tests.rb +99 -109
  20. data/test/unit/actual_value_tests.rb +371 -0
  21. data/test/unit/assert_tests.rb +111 -43
  22. data/test/unit/assertions/assert_block_tests.rb +30 -31
  23. data/test/unit/assertions/assert_changes_tests.rb +97 -0
  24. data/test/unit/assertions/assert_empty_tests.rb +33 -32
  25. data/test/unit/assertions/assert_equal_tests.rb +94 -74
  26. data/test/unit/assertions/assert_file_exists_tests.rb +32 -33
  27. data/test/unit/assertions/assert_includes_tests.rb +38 -37
  28. data/test/unit/assertions/assert_instance_of_tests.rb +34 -33
  29. data/test/unit/assertions/assert_kind_of_tests.rb +34 -33
  30. data/test/unit/assertions/assert_match_tests.rb +34 -33
  31. data/test/unit/assertions/assert_nil_tests.rb +30 -31
  32. data/test/unit/assertions/assert_raises_tests.rb +55 -55
  33. data/test/unit/assertions/assert_respond_to_tests.rb +36 -35
  34. data/test/unit/assertions/assert_same_tests.rb +86 -81
  35. data/test/unit/assertions/assert_true_false_tests.rb +60 -60
  36. data/test/unit/assertions_tests.rb +26 -24
  37. data/test/unit/config_helpers_tests.rb +43 -38
  38. data/test/unit/config_tests.rb +38 -34
  39. data/test/unit/context/let_dsl_tests.rb +10 -0
  40. data/test/unit/context/setup_dsl_tests.rb +70 -81
  41. data/test/unit/context/subject_dsl_tests.rb +15 -43
  42. data/test/unit/context/suite_dsl_tests.rb +15 -16
  43. data/test/unit/context/test_dsl_tests.rb +50 -52
  44. data/test/unit/context_info_tests.rb +23 -15
  45. data/test/unit/context_tests.rb +184 -179
  46. data/test/unit/default_runner_tests.rb +2 -5
  47. data/test/unit/default_suite_tests.rb +57 -53
  48. data/test/unit/factory_tests.rb +5 -3
  49. data/test/unit/file_line_tests.rb +33 -35
  50. data/test/unit/macro_tests.rb +14 -10
  51. data/test/unit/result_tests.rb +159 -183
  52. data/test/unit/runner_tests.rb +64 -64
  53. data/test/unit/suite_tests.rb +56 -59
  54. data/test/unit/test_tests.rb +118 -139
  55. data/test/unit/utils_tests.rb +43 -45
  56. data/test/unit/view_helpers_tests.rb +54 -52
  57. data/test/unit/view_tests.rb +22 -23
  58. metadata +29 -7
@@ -6,10 +6,7 @@ require "assert/runner"
6
6
  class Assert::DefaultRunner
7
7
  class UnitTests < Assert::Context
8
8
  desc "Assert::DefaultRunner"
9
- setup do
10
- @config = Factory.modes_off_config
11
- @runner = Assert::DefaultRunner.new(@config)
12
- end
13
- subject{ @runner }
9
+
10
+ # This is tested implicitly by running Assert's test suite
14
11
  end
15
12
  end
@@ -6,89 +6,93 @@ require "assert/suite"
6
6
  class Assert::DefaultSuite
7
7
  class UnitTests < Assert::Context
8
8
  desc "Assert::DefaultSuite"
9
- setup do
10
- ci = Factory.context_info(Factory.modes_off_context_class)
11
- @test = Factory.test(Factory.string, ci){ }
9
+ subject { unit_class }
12
10
 
13
- @config = Factory.modes_off_config
14
- @suite = Assert::DefaultSuite.new(@config)
15
- end
16
- subject{ @suite }
11
+ let(:unit_class) { Assert::DefaultSuite }
12
+ end
13
+
14
+ class InitTests < UnitTests
15
+ desc "when init"
16
+ subject { unit_class.new(config1) }
17
+
18
+ let(:ci1) { Factory.context_info(Factory.modes_off_context_class) }
19
+ let(:test1) { Factory.test(Factory.string, ci1) { } }
20
+ let(:config1) { Factory.modes_off_config }
17
21
 
18
22
  should "be a Suite" do
19
- assert_kind_of Assert::Suite, subject
23
+ assert_that(subject).is_kind_of(Assert::Suite)
20
24
  end
21
25
 
22
26
  should "default its test/result counts" do
23
- assert_equal 0, subject.test_count
24
- assert_equal 0, subject.result_count
25
- assert_equal 0, subject.pass_result_count
26
- assert_equal 0, subject.fail_result_count
27
- assert_equal 0, subject.error_result_count
28
- assert_equal 0, subject.skip_result_count
29
- assert_equal 0, subject.ignore_result_count
27
+ assert_that(subject.test_count).equals(0)
28
+ assert_that(subject.result_count).equals(0)
29
+ assert_that(subject.pass_result_count).equals(0)
30
+ assert_that(subject.fail_result_count).equals(0)
31
+ assert_that(subject.error_result_count).equals(0)
32
+ assert_that(subject.skip_result_count).equals(0)
33
+ assert_that(subject.ignore_result_count).equals(0)
30
34
  end
31
35
 
32
36
  should "increment its test count on `before_test`" do
33
37
  subject.before_test(@test)
34
- assert_equal 1, subject.test_count
38
+ assert_that(subject.test_count).equals(1)
35
39
  end
36
40
 
37
41
  should "increment its result counts on `on_result`" do
38
42
  subject.on_result(Factory.pass_result)
39
- assert_equal 1, subject.result_count
40
- assert_equal 1, subject.pass_result_count
41
- assert_equal 0, subject.fail_result_count
42
- assert_equal 0, subject.error_result_count
43
- assert_equal 0, subject.skip_result_count
44
- assert_equal 0, subject.ignore_result_count
43
+ assert_that(subject.result_count).equals(1)
44
+ assert_that(subject.pass_result_count).equals(1)
45
+ assert_that(subject.fail_result_count).equals(0)
46
+ assert_that(subject.error_result_count).equals(0)
47
+ assert_that(subject.skip_result_count).equals(0)
48
+ assert_that(subject.ignore_result_count).equals(0)
45
49
 
46
50
  subject.on_result(Factory.fail_result)
47
- assert_equal 2, subject.result_count
48
- assert_equal 1, subject.pass_result_count
49
- assert_equal 1, subject.fail_result_count
50
- assert_equal 0, subject.error_result_count
51
- assert_equal 0, subject.skip_result_count
52
- assert_equal 0, subject.ignore_result_count
51
+ assert_that(subject.result_count).equals(2)
52
+ assert_that(subject.pass_result_count).equals(1)
53
+ assert_that(subject.fail_result_count).equals(1)
54
+ assert_that(subject.error_result_count).equals(0)
55
+ assert_that(subject.skip_result_count).equals(0)
56
+ assert_that(subject.ignore_result_count).equals(0)
53
57
 
54
58
  subject.on_result(Factory.error_result)
55
- assert_equal 3, subject.result_count
56
- assert_equal 1, subject.pass_result_count
57
- assert_equal 1, subject.fail_result_count
58
- assert_equal 1, subject.error_result_count
59
- assert_equal 0, subject.skip_result_count
60
- assert_equal 0, subject.ignore_result_count
59
+ assert_that(subject.result_count).equals(3)
60
+ assert_that(subject.pass_result_count).equals(1)
61
+ assert_that(subject.fail_result_count).equals(1)
62
+ assert_that(subject.error_result_count).equals(1)
63
+ assert_that(subject.skip_result_count).equals(0)
64
+ assert_that(subject.ignore_result_count).equals(0)
61
65
 
62
66
  subject.on_result(Factory.skip_result)
63
- assert_equal 4, subject.result_count
64
- assert_equal 1, subject.pass_result_count
65
- assert_equal 1, subject.fail_result_count
66
- assert_equal 1, subject.error_result_count
67
- assert_equal 1, subject.skip_result_count
68
- assert_equal 0, subject.ignore_result_count
67
+ assert_that(subject.result_count).equals(4)
68
+ assert_that(subject.pass_result_count).equals(1)
69
+ assert_that(subject.fail_result_count).equals(1)
70
+ assert_that(subject.error_result_count).equals(1)
71
+ assert_that(subject.skip_result_count).equals(1)
72
+ assert_that(subject.ignore_result_count).equals(0)
69
73
 
70
74
  subject.on_result(Factory.ignore_result)
71
- assert_equal 5, subject.result_count
72
- assert_equal 1, subject.pass_result_count
73
- assert_equal 1, subject.fail_result_count
74
- assert_equal 1, subject.error_result_count
75
- assert_equal 1, subject.skip_result_count
76
- assert_equal 1, subject.ignore_result_count
75
+ assert_that(subject.result_count).equals(5)
76
+ assert_that(subject.pass_result_count).equals(1)
77
+ assert_that(subject.fail_result_count).equals(1)
78
+ assert_that(subject.error_result_count).equals(1)
79
+ assert_that(subject.skip_result_count).equals(1)
80
+ assert_that(subject.ignore_result_count).equals(1)
77
81
  end
78
82
 
79
83
  should "clear the run data on `on_start`" do
80
- subject.before_test(@test)
84
+ subject.before_test(test1)
81
85
  subject.on_result(Factory.pass_result)
82
86
 
83
- assert_equal 1, subject.test_count
84
- assert_equal 1, subject.result_count
85
- assert_equal 1, subject.pass_result_count
87
+ assert_that(subject.test_count).equals(1)
88
+ assert_that(subject.result_count).equals(1)
89
+ assert_that(subject.pass_result_count).equals(1)
86
90
 
87
91
  subject.on_start
88
92
 
89
- assert_equal 0, subject.test_count
90
- assert_equal 0, subject.result_count
91
- assert_equal 0, subject.pass_result_count
93
+ assert_that(subject.test_count).equals(0)
94
+ assert_that(subject.result_count).equals(0)
95
+ assert_that(subject.pass_result_count).equals(0)
92
96
  end
93
97
  end
94
98
  end
@@ -6,13 +6,15 @@ require "much-factory"
6
6
  module Assert::Factory
7
7
  class UnitTests < Assert::Context
8
8
  desc "Assert::Factory"
9
- subject{ Assert::Factory }
9
+ subject { unit_class }
10
+
11
+ let(:unit_class) { Assert::Factory }
10
12
 
11
13
  should "include and extend MuchFactory" do
12
- assert_includes MuchFactory, subject
14
+ assert_that(subject).includes(MuchFactory)
13
15
 
14
16
  # https://stackoverflow.com/questions/5197166/ruby-get-a-list-of-extended-modules
15
- assert_includes MuchFactory, subject_metaclass.included_modules
17
+ assert_that(subject_metaclass.included_modules).includes(MuchFactory)
16
18
  end
17
19
 
18
20
  private
@@ -4,75 +4,73 @@ require "assert/file_line"
4
4
  class Assert::FileLine
5
5
  class UnitTests < Assert::Context
6
6
  desc "Assert::FileLine"
7
- setup do
8
- @file = "#{Factory.path}_tests.rb"
9
- @line = Factory.integer.to_s
10
- end
11
- subject{ Assert::FileLine }
7
+ subject { unit_class }
8
+
9
+ let(:unit_class) { Assert::FileLine }
10
+
11
+ let(:file1) { "#{Factory.path}_tests.rb" }
12
+ let(:line1) { Factory.integer.to_s }
12
13
 
13
14
  should have_imeths :parse
14
15
 
15
16
  should "know how to parse and init from a file line path string" do
16
17
  file_line_path = [
17
- "#{@file}:#{@line}",
18
- "#{@file}:#{@line} #{Factory.string}"
18
+ "#{file1}:#{line1}",
19
+ "#{file1}:#{line1} #{Factory.string}"
19
20
  ].sample
20
21
  file_line = subject.parse(file_line_path)
21
22
 
22
- assert_equal @file, file_line.file
23
- assert_equal @line, file_line.line
23
+ assert_that(file_line.file).equals(file1)
24
+ assert_that(file_line.line).equals(line1)
24
25
  end
25
26
 
26
27
  should "handle parsing bad data gracefully" do
27
- file_line = subject.parse(@file)
28
- assert_equal @file, file_line.file
29
- assert_equal "", file_line.line
28
+ file_line = subject.parse(file1)
29
+ assert_that(file_line.file).equals(file1)
30
+ assert_that(file_line.line).equals("")
30
31
 
31
- file_line = subject.parse(@line)
32
- assert_equal @line, file_line.file
33
- assert_equal "", file_line.line
32
+ file_line = subject.parse(line1)
33
+ assert_that(file_line.file).equals(line1)
34
+ assert_that(file_line.line).equals("")
34
35
 
35
36
  file_line = subject.parse("")
36
- assert_equal "", file_line.file
37
- assert_equal "", file_line.line
37
+ assert_that(file_line.file).equals("")
38
+ assert_that(file_line.line).equals("")
38
39
 
39
40
  file_line = subject.parse(nil)
40
- assert_equal "", file_line.file
41
- assert_equal "", file_line.line
41
+ assert_that(file_line.file).equals("")
42
+ assert_that(file_line.line).equals("")
42
43
  end
43
44
  end
44
45
 
45
46
  class InitTests < UnitTests
46
47
  desc "when init"
47
- setup do
48
- @file_line = Assert::FileLine.new(@file, @line)
49
- end
50
- subject{ @file_line }
48
+ subject { unit_class.new(file1, line1) }
51
49
 
52
50
  should have_readers :file, :line
53
51
 
54
52
  should "know its file and line" do
55
- assert_equal @file, subject.file
56
- assert_equal @line, subject.line
53
+ assert_that(subject.file).equals(file1)
54
+ assert_that(subject.line).equals(line1)
57
55
 
58
- file_line = Assert::FileLine.new(@file)
59
- assert_equal @file, file_line.file
60
- assert_equal "", file_line.line
56
+ file_line = unit_class.new(file1)
57
+ assert_that(file_line.file).equals(file1)
58
+ assert_that(file_line.line).equals("")
61
59
 
62
- file_line = Assert::FileLine.new
63
- assert_equal "", file_line.file
64
- assert_equal "", file_line.line
60
+ file_line = unit_class.new
61
+ assert_that(file_line.file).equals("")
62
+ assert_that(file_line.line).equals("")
65
63
  end
66
64
 
67
65
  should "know its string representation" do
68
- assert_equal "#{subject.file}:#{subject.line}", subject.to_s
66
+ assert_that(subject.to_s).equals("#{subject.file}:#{subject.line}")
69
67
  end
70
68
 
71
69
  should "know if it is equal to another file line" do
72
- yes = Assert::FileLine.new(@file, @line)
73
- no = Assert::FileLine.new("#{Factory.path}_tests.rb", Factory.integer.to_s)
70
+ yes = unit_class.new(file1, line1)
71
+ no = unit_class.new("#{Factory.path}_tests.rb", Factory.integer.to_s)
74
72
 
75
- assert_equal yes, subject
73
+ assert_that(subject).equals(yes)
76
74
  assert_not_equal no, subject
77
75
  end
78
76
  end
@@ -4,30 +4,34 @@ require "assert/macro"
4
4
  class Assert::Macro
5
5
  class UnitTests < Assert::Context
6
6
  desc "Assert::Macro"
7
- setup do
8
- @macro = Assert::Macro.new {}
9
- end
10
- subject { @macro }
7
+ subject { unit_class }
8
+
9
+ let(:unit_class) { Assert::Macro }
10
+ end
11
+
12
+ class InitTests < UnitTests
13
+ desc "when init"
14
+ subject { unit_class.new {} }
11
15
 
12
16
  should "have an accessor for its (optional) name" do
13
- assert_respond_to :name, subject
14
- assert_respond_to :name=, subject
17
+ assert_that(subject).responds_to(:name)
18
+ assert_that(subject).responds_to(:name=)
15
19
  end
16
20
 
17
21
  should "default its name if no given" do
18
- assert_equal "run this macro", (Assert::Macro.new {}).name
22
+ assert_that((unit_class.new {}).name).equals("run this macro")
19
23
  end
20
24
 
21
25
  should "initialize with a given name" do
22
- assert_equal "test", (Assert::Macro.new("test") {}).name
26
+ assert_that((unit_class.new("test") {}).name).equals("test")
23
27
  end
24
28
 
25
29
  should "be a Proc" do
26
- assert_kind_of ::Proc, subject
30
+ assert_that(subject).is_kind_of(::Proc)
27
31
  end
28
32
 
29
33
  should "complain if you create a macro without a block" do
30
- assert_raises(ArgumentError) { Assert::Macro.new }
34
+ assert_that { unit_class.new }.raises(ArgumentError)
31
35
  end
32
36
  end
33
37
 
@@ -6,10 +6,11 @@ require "assert/file_line"
6
6
  module Assert::Result
7
7
  class UnitTests < Assert::Context
8
8
  desc "Assert::Result"
9
- setup do
10
- @test = Factory.test("a test name")
11
- end
12
- subject{ Assert::Result }
9
+ subject { unit_class }
10
+
11
+ let(:unit_class) { Assert::Result }
12
+
13
+ let(:test1) { Factory.test("a test name") }
13
14
 
14
15
  should have_imeths :types, :new
15
16
 
@@ -21,40 +22,33 @@ module Assert::Result
21
22
  :skip => Skip,
22
23
  :error => Error
23
24
  }
24
- assert_equal exp, subject.types
25
+ assert_that(subject.types).equals(exp)
25
26
 
26
- assert_equal Base, subject.types[Factory.string]
27
+ assert_that(subject.types[Factory.string]).equals(Base)
27
28
  end
28
29
 
29
30
  should "create results from data hashes" do
30
31
  type = Assert::Result.types.keys.sample
31
32
  exp = Assert::Result.types[type].new(:type => type)
32
- assert_equal exp, Assert::Result.new(:type => type)
33
- end
34
-
35
- private
36
-
37
- def build_backtrace
38
- assert_lib_path = File.join(ROOT_PATH, "lib/#{Factory.string}:#{Factory.integer}")
39
- (Factory.integer(3).times.map{ Factory.string } + [assert_lib_path]).shuffle
33
+ assert_that(Assert::Result.new(:type => type)).equals(exp)
40
34
  end
41
35
  end
42
36
 
43
- class BaseTests < UnitTests
44
- desc "Base"
45
- setup do
46
- @given_data = {
37
+ class InitBaseTests < UnitTests
38
+ desc "Base when init"
39
+ subject { Base.new(given_data1) }
40
+
41
+ let(:given_data1) {
42
+ {
47
43
  :type => Factory.string,
48
44
  :name => Factory.string,
49
45
  :test_name => Factory.string,
50
46
  :test_file_line => Assert::FileLine.new(Factory.string, Factory.integer),
51
47
  :message => Factory.string,
52
48
  :output => Factory.text,
53
- :backtrace => Backtrace.new(build_backtrace)
49
+ :backtrace => Backtrace.new(Factory.backtrace)
54
50
  }
55
- @result = Base.new(@given_data)
56
- end
57
- subject{ @result }
51
+ }
58
52
 
59
53
  should have_cmeths :type, :name, :for_test
60
54
  should have_imeths :type, :name, :test_name, :test_file_line
@@ -63,69 +57,69 @@ module Assert::Result
63
57
  should have_imeths :backtrace, :trace
64
58
  should have_imeths :set_backtrace, :set_with_bt, :with_bt_set?
65
59
  should have_imeths :src_line, :file_line, :file_name, :line_num
66
- should have_imeths *Assert::Result.types.keys.map{ |k| "#{k}?" }
60
+ should have_imeths(*Assert::Result.types.keys.map{ |k| "#{k}?" })
67
61
  should have_imeths :to_sym, :to_s
68
62
 
69
63
  should "know its class-level type/name" do
70
- assert_equal :unknown, subject.class.type
71
- assert_equal "", subject.class.name
64
+ assert_that(subject.class.type).equals(:unknown)
65
+ assert_that(subject.class.name).equals("")
72
66
  end
73
67
 
74
68
  should "know how to build a result for a given test" do
75
69
  message = Factory.text
76
70
  bt = Factory.integer(3).times.map{ Factory.string }
77
- result = Base.for_test(@test, message, bt)
71
+ result = Base.for_test(test1, message, bt)
78
72
 
79
73
  exp_backtrace = Backtrace.new(bt)
80
74
  exp_trace = exp_backtrace.filtered.first.to_s
81
75
 
82
- assert_equal @test.name, result.test_name
83
- assert_equal @test.file_line.to_s, result.test_id
76
+ assert_that(result.test_name).equals(test1.name)
77
+ assert_that(result.test_id).equals(test1.file_line.to_s)
84
78
 
85
- assert_equal message, result.message
86
- assert_equal exp_backtrace, result.backtrace
87
- assert_equal exp_trace, result.trace
79
+ assert_that(result.message).equals(message)
80
+ assert_that(result.backtrace).equals(exp_backtrace)
81
+ assert_that(result.trace).equals(exp_trace)
88
82
 
89
- assert_false result.with_bt_set?
83
+ assert_that(result.with_bt_set?).is_false
90
84
  end
91
85
 
92
86
  should "use any given attrs" do
93
- assert_equal @given_data[:type].to_sym, subject.type
94
- assert_equal @given_data[:name], subject.name
95
- assert_equal @given_data[:test_name], subject.test_name
96
- assert_equal @given_data[:test_file_line], subject.test_file_line
97
- assert_equal @given_data[:message], subject.message
98
- assert_equal @given_data[:output], subject.output
99
- assert_equal @given_data[:backtrace], subject.backtrace
87
+ assert_that(subject.type).equals(given_data1[:type].to_sym)
88
+ assert_that(subject.name).equals(given_data1[:name])
89
+ assert_that(subject.test_name).equals(given_data1[:test_name])
90
+ assert_that(subject.test_file_line).equals(given_data1[:test_file_line])
91
+ assert_that(subject.message).equals(given_data1[:message])
92
+ assert_that(subject.output).equals(given_data1[:output])
93
+ assert_that(subject.backtrace).equals(given_data1[:backtrace])
100
94
  end
101
95
 
102
96
  should "default its attrs" do
103
97
  result = Base.new({})
104
98
 
105
- assert_equal :unknown, result.type
106
- assert_equal "", result.name
107
- assert_equal "", result.test_name
108
- assert_equal Assert::FileLine.parse(""), result.test_file_line
109
- assert_equal "", result.message
110
- assert_equal "", result.output
111
- assert_equal Backtrace.new([]), result.backtrace
112
- assert_equal "", result.trace
99
+ assert_that(result.type).equals(:unknown)
100
+ assert_that(result.name).equals("")
101
+ assert_that(result.test_name).equals("")
102
+ assert_that(result.test_file_line).equals(Assert::FileLine.parse(""))
103
+ assert_that(result.message).equals("")
104
+ assert_that(result.output).equals("")
105
+ assert_that(result.backtrace).equals(Backtrace.new([]))
106
+ assert_that(result.trace).equals("")
113
107
  end
114
108
 
115
109
  should "know its test file line attrs" do
116
- exp = @given_data[:test_file_line]
117
- assert_equal exp.file, subject.test_file_name
118
- assert_equal exp.line.to_i, subject.test_line_num
119
- assert_equal exp.to_s, subject.test_id
110
+ exp = given_data1[:test_file_line]
111
+ assert_that(subject.test_file_name).equals(exp.file)
112
+ assert_that(subject.test_line_num).equals(exp.line.to_i)
113
+ assert_that(subject.test_id).equals(exp.to_s)
120
114
  end
121
115
 
122
116
  should "allow setting a new backtrace" do
123
- new_bt = build_backtrace
117
+ new_bt = Factory.backtrace
124
118
  exp_backtrace = Backtrace.new(new_bt)
125
119
  exp_trace = exp_backtrace.filtered.first.to_s
126
120
  subject.set_backtrace(new_bt)
127
- assert_equal exp_backtrace, subject.backtrace
128
- assert_equal exp_trace, subject.trace
121
+ assert_that(subject.backtrace).equals(exp_backtrace)
122
+ assert_that(subject.trace).equals(exp_trace)
129
123
 
130
124
  # test that the first bt line is used if filtered is empty
131
125
  assert_lib_path = File.join(ROOT_PATH, "lib/#{Factory.string}:#{Factory.integer}")
@@ -133,46 +127,46 @@ module Assert::Result
133
127
  exp_backtrace = Backtrace.new(new_bt)
134
128
  exp_trace = exp_backtrace.first.to_s
135
129
  subject.set_backtrace(new_bt)
136
- assert_equal exp_backtrace, subject.backtrace
137
- assert_equal exp_trace, subject.trace
130
+ assert_that(subject.backtrace).equals(exp_backtrace)
131
+ assert_that(subject.trace).equals(exp_trace)
138
132
  end
139
133
 
140
134
  should "allow setting a with bt backtrace and know if one has been set" do
141
- assert_false subject.with_bt_set?
135
+ assert_that(subject.with_bt_set?).is_false
142
136
 
143
137
  orig_backtrace = subject.backtrace
144
- with_bt = build_backtrace
138
+ with_bt = Factory.backtrace
145
139
 
146
140
  subject.set_with_bt(with_bt)
147
141
 
148
- assert_true subject.with_bt_set?
149
- assert_equal orig_backtrace, subject.backtrace
150
- assert_equal with_bt.first, subject.src_line
142
+ assert_that(subject.with_bt_set?).is_true
143
+ assert_that(subject.backtrace).equals(orig_backtrace)
144
+ assert_that(subject.src_line).equals(with_bt.first)
151
145
 
152
146
  exp = Backtrace.to_s(with_bt + [orig_backtrace.filtered.first])
153
- assert_equal exp, subject.trace
147
+ assert_that(subject.trace).equals(exp)
154
148
  end
155
149
 
156
150
  should "know its src/file line attrs" do
157
- new_bt = build_backtrace
151
+ new_bt = Factory.backtrace
158
152
  subject.set_backtrace(new_bt)
159
153
 
160
154
  exp = Backtrace.new(new_bt).filtered.first.to_s
161
- assert_equal exp, subject.src_line
155
+ assert_that(subject.src_line).equals(exp)
162
156
 
163
157
  exp = Assert::FileLine.parse(subject.src_line)
164
- assert_equal exp, subject.file_line
165
- assert_equal exp.file, subject.file_name
166
- assert_equal exp.line.to_i, subject.line_num
158
+ assert_that(subject.file_line).equals(exp)
159
+ assert_that(subject.file_name).equals(exp.file)
160
+ assert_that(subject.line_num).equals(exp.line.to_i)
167
161
 
168
162
  # test you get the same file line attrs using `set_with_bt`
169
163
  subject.set_with_bt(new_bt)
170
- assert_equal new_bt.first.to_s, subject.src_line
164
+ assert_that(subject.src_line).equals(new_bt.first.to_s)
171
165
 
172
166
  exp = Assert::FileLine.parse(subject.src_line)
173
- assert_equal exp, subject.file_line
174
- assert_equal exp.file, subject.file_name
175
- assert_equal exp.line.to_i, subject.line_num
167
+ assert_that(subject.file_line).equals(exp)
168
+ assert_that(subject.file_name).equals(exp.file)
169
+ assert_that(subject.line_num).equals(exp.line.to_i)
176
170
 
177
171
  # test that the first bt line is used if filtered is empty
178
172
  assert_lib_path = File.join(ROOT_PATH, "lib/#{Factory.string}:#{Factory.integer}")
@@ -180,45 +174,45 @@ module Assert::Result
180
174
  subject.set_backtrace(new_bt)
181
175
 
182
176
  exp = new_bt.first.to_s
183
- assert_equal exp, subject.src_line
177
+ assert_that(subject.src_line).equals(exp)
184
178
 
185
179
  exp = Assert::FileLine.parse(subject.src_line)
186
- assert_equal exp, subject.file_line
187
- assert_equal exp.file, subject.file_name
188
- assert_equal exp.line.to_i, subject.line_num
180
+ assert_that(subject.file_line).equals(exp)
181
+ assert_that(subject.file_name).equals(exp.file)
182
+ assert_that(subject.line_num).equals(exp.line.to_i)
189
183
  end
190
184
 
191
185
  should "know if it is a certain type of result" do
192
186
  Assert::Result.types.keys.each do |type|
193
- assert_false subject.send("#{type}?")
187
+ assert_that(subject.send("#{type}?")).is_false
194
188
  Assert.stub(subject, :type){ type }
195
- assert_true subject.send("#{type}?")
189
+ assert_that(subject.send("#{type}?")).is_true
196
190
  end
197
191
  end
198
192
 
199
193
  should "know its symbol representation" do
200
- assert_equal subject.type, subject.to_sym
194
+ assert_that(subject.to_sym).equals(subject.type)
201
195
  end
202
196
 
203
197
  should "know its string representation" do
204
198
  str = subject.to_s
205
199
 
206
- assert_includes subject.name.upcase, str
207
- assert_includes subject.test_name, str
208
- assert_includes subject.message, str
209
- assert_includes subject.trace, str
200
+ assert_that(str).includes(subject.name.upcase)
201
+ assert_that(str).includes(subject.test_name)
202
+ assert_that(str).includes(subject.message)
203
+ assert_that(str).includes(subject.trace)
210
204
 
211
- assert_equal 3, str.split("\n").count
205
+ assert_that(str.split("\n").count).equals(3)
212
206
 
213
207
  Assert.stub(subject, :message){ "" }
214
208
  Assert.stub(subject, :trace){ "" }
215
209
 
216
- assert_equal 1, subject.to_s.split("\n").count
210
+ assert_that(subject.to_s.split("\n").count).equals(1)
217
211
  end
218
212
 
219
213
  should "know if it is equal to another result" do
220
- other = Assert::Result::Base.new(@given_data)
221
- assert_equal other, subject
214
+ other = Assert::Result::Base.new(given_data1)
215
+ assert_that(subject).equals(other)
222
216
 
223
217
  Assert.stub(other, [:type, :message].sample){ Factory.string }
224
218
  assert_not_equal other, subject
@@ -229,209 +223,191 @@ module Assert::Result
229
223
  "@message=#{subject.message.inspect} "\
230
224
  "@file_line=#{subject.file_line.to_s.inspect} "\
231
225
  "@test_file_line=#{subject.test_file_line.to_s.inspect}>"
232
- assert_equal exp, subject.inspect
226
+ assert_that(subject.inspect).equals(exp)
233
227
  end
234
228
  end
235
229
 
236
- class PassTests < UnitTests
237
- desc "Pass"
238
- setup do
239
- @result = Pass.new({})
240
- end
241
- subject { @result }
230
+ class InitPassTests < UnitTests
231
+ desc "Pass when init"
232
+ subject { Pass.new({}) }
242
233
 
243
234
  should "know its type/name" do
244
- assert_equal :pass, subject.type
245
- assert_equal :pass, subject.class.type
246
- assert_equal "Pass", subject.class.name
235
+ assert_that(subject.type).equals(:pass)
236
+ assert_that(subject.class.type).equals(:pass)
237
+ assert_that(subject.class.name).equals("Pass")
247
238
  end
248
239
  end
249
240
 
250
- class IgnoreTests < UnitTests
251
- desc "Ignore"
252
- setup do
253
- @result = Ignore.new({})
254
- end
255
- subject { @result }
241
+ class InitIgnoreTests < UnitTests
242
+ desc "Ignore when init"
243
+ subject { Ignore.new({}) }
256
244
 
257
245
  should "know its type/name" do
258
- assert_equal :ignore, subject.type
259
- assert_equal :ignore, subject.class.type
260
- assert_equal "Ignore", subject.class.name
246
+ assert_that(subject.type).equals(:ignore)
247
+ assert_that(subject.class.type).equals(:ignore)
248
+ assert_that(subject.class.name).equals("Ignore")
261
249
  end
262
250
  end
263
251
 
264
- class HaltingTestResultErrorTests < UnitTests
265
- desc "HaltingTestResultError"
266
- subject{ HaltingTestResultError.new }
252
+ class InitHaltingTestResultErrorTests < UnitTests
253
+ desc "HaltingTestResultError when init"
254
+ subject { HaltingTestResultError.new }
267
255
 
268
256
  should have_accessors :assert_with_bt
269
257
 
270
258
  should "be a runtime error" do
271
- assert_kind_of RuntimeError, subject
259
+ assert_that(subject).is_kind_of(RuntimeError)
272
260
  end
273
261
  end
274
262
 
275
- class TestFailureTests < UnitTests
276
- desc "TestFailure"
277
- subject{ TestFailure }
263
+ class InitTestFailureTests < UnitTests
264
+ desc "TestFailure when init"
265
+ subject { TestFailure.new }
278
266
 
279
267
  should "be a halting test result error" do
280
- assert_kind_of HaltingTestResultError, subject.new
268
+ assert_that(subject).is_kind_of(HaltingTestResultError)
281
269
  end
282
270
  end
283
271
 
284
- class FailTests < UnitTests
285
- desc "Fail"
286
- setup do
287
- @result = Fail.new({})
288
- end
289
- subject { @result }
272
+ class InitFailTests < UnitTests
273
+ desc "Fail when init"
274
+ subject { Fail.new({}) }
290
275
 
291
276
  should "know its type/name" do
292
- assert_equal :fail, subject.type
293
- assert_equal :fail, subject.class.type
294
- assert_equal "Fail", subject.class.name
277
+ assert_that(subject.type).equals(:fail)
278
+ assert_that(subject.class.type).equals(:fail)
279
+ assert_that(subject.class.name).equals("Fail")
295
280
  end
296
281
 
297
282
  should "allow creating for a test with TestFailure exceptions" do
298
283
  err = TestFailure.new
299
- err.set_backtrace(build_backtrace)
300
- result = Fail.for_test(@test, err)
284
+ err.set_backtrace(Factory.backtrace)
285
+ result = Fail.for_test(test1, err)
301
286
 
302
- assert_equal err.message, result.message
287
+ assert_that(result.message).equals(err.message)
303
288
 
304
289
  err_backtrace = Backtrace.new(err.backtrace)
305
- assert_equal err_backtrace, result.backtrace
290
+ assert_that(result.backtrace).equals(err_backtrace)
306
291
 
307
292
  # test assert with bt errors
308
- err.assert_with_bt = build_backtrace
309
- result = Fail.for_test(@test, err)
293
+ err.assert_with_bt = Factory.backtrace
294
+ result = Fail.for_test(test1, err)
310
295
 
311
- assert_equal err.message, result.message
312
- assert_equal err.backtrace, result.backtrace
313
- assert_equal err.assert_with_bt.first, result.src_line
296
+ assert_that(result.message).equals(err.message)
297
+ assert_that(result.backtrace).equals(err.backtrace)
298
+ assert_that(result.src_line).equals(err.assert_with_bt.first)
314
299
 
315
300
  exp = Backtrace.to_s(err.assert_with_bt + [err_backtrace.filtered.first])
316
- assert_equal exp, result.trace
301
+ assert_that(result.trace).equals(exp)
317
302
  end
318
303
 
319
304
  should "not allow creating for a test with non-TestFailure exceptions" do
320
- assert_raises(ArgumentError){ Fail.for_test(@test, RuntimeError.new) }
305
+ assert_that { Fail.for_test(test1, RuntimeError.new) }.raises(ArgumentError)
321
306
  end
322
307
  end
323
308
 
324
- class TestSkippedTests < UnitTests
325
- desc "TestSkipped"
326
- subject{ TestSkipped }
309
+ class InitTestSkippedTests < UnitTests
310
+ desc "TestSkipped when init"
311
+ subject { TestSkipped.new }
327
312
 
328
313
  should "be a halting test result error" do
329
- assert_kind_of HaltingTestResultError, subject.new
314
+ assert_that(subject).is_kind_of(HaltingTestResultError)
330
315
  end
331
316
  end
332
317
 
333
- class SkipTests < UnitTests
334
- desc "Skip"
335
- setup do
336
- @result = Skip.new({})
337
- end
338
- subject { @result }
318
+ class InitSkipTests < UnitTests
319
+ desc "Skip when init"
320
+ subject { Skip.new({}) }
339
321
 
340
322
  should "know its type/name" do
341
- assert_equal :skip, subject.type
342
- assert_equal :skip, subject.class.type
343
- assert_equal "Skip", subject.class.name
323
+ assert_that(subject.type).equals(:skip)
324
+ assert_that(subject.class.type).equals(:skip)
325
+ assert_that(subject.class.name).equals("Skip")
344
326
  end
345
327
 
346
328
  should "allow creating for a test with TestSkipped exceptions" do
347
329
  err = TestSkipped.new
348
- err.set_backtrace(build_backtrace)
349
- result = Skip.for_test(@test, err)
330
+ err.set_backtrace(Factory.backtrace)
331
+ result = Skip.for_test(test1, err)
350
332
 
351
- assert_equal err.message, result.message
333
+ assert_that(result.message).equals(err.message)
352
334
 
353
335
  err_backtrace = Backtrace.new(err.backtrace)
354
- assert_equal err_backtrace, result.backtrace
336
+ assert_that(result.backtrace).equals(err_backtrace)
355
337
 
356
338
  # test assert with bt errors
357
- err.assert_with_bt = build_backtrace
358
- result = Skip.for_test(@test, err)
339
+ err.assert_with_bt = Factory.backtrace
340
+ result = Skip.for_test(test1, err)
359
341
 
360
- assert_equal err.message, result.message
361
- assert_equal err.backtrace, result.backtrace
362
- assert_equal err.assert_with_bt.first, result.src_line
342
+ assert_that(result.message).equals(err.message)
343
+ assert_that(result.backtrace).equals(err.backtrace)
344
+ assert_that(result.src_line).equals(err.assert_with_bt.first)
363
345
 
364
346
  exp = Backtrace.to_s(err.assert_with_bt + [err_backtrace.filtered.first])
365
- assert_equal exp, result.trace
347
+ assert_that(result.trace).equals(exp)
366
348
  end
367
349
 
368
350
  should "not allow creating for a test with non-TestSkipped exceptions" do
369
- assert_raises(ArgumentError){ Skip.for_test(@test, RuntimeError.new) }
351
+ assert_that { Skip.for_test(test1, RuntimeError.new) }.raises(ArgumentError)
370
352
  end
371
353
  end
372
354
 
373
- class ErrorTests < UnitTests
374
- desc "Error"
375
- setup do
376
- @result = Error.new({})
377
- end
378
- subject { @result }
355
+ class InitErrorTests < UnitTests
356
+ desc "Error when init"
357
+ subject { Error.new({}) }
379
358
 
380
359
  should "know its class-level type/name" do
381
- assert_equal :error, subject.class.type
382
- assert_equal "Error", subject.class.name
360
+ assert_that(subject.class.type).equals(:error)
361
+ assert_that(subject.class.name).equals("Error")
383
362
  end
384
363
 
385
364
  should "allow creating for a test with exceptions" do
386
365
  err = Exception.new
387
- err.set_backtrace(build_backtrace)
388
- result = Error.for_test(@test, err)
366
+ err.set_backtrace(Factory.backtrace)
367
+ result = Error.for_test(test1, err)
389
368
 
390
369
  exp_msg = "#{err.message} (#{err.class.name})"
391
- assert_equal exp_msg, result.message
370
+ assert_that(result.message).equals(exp_msg)
392
371
 
393
372
  exp_bt = Backtrace.new(err.backtrace)
394
- assert_equal exp_bt, result.backtrace
395
- assert_equal Backtrace.to_s(exp_bt), result.trace
373
+ assert_that(result.backtrace).equals(exp_bt)
374
+ assert_that(result.trace).equals(Backtrace.to_s(exp_bt))
396
375
  end
397
376
 
398
377
  should "not allow creating for a test without an exception" do
399
- assert_raises(ArgumentError){ Error.for_test(@test, Factory.string) }
378
+ assert_that { Error.for_test(test1, Factory.string) }.raises(ArgumentError)
400
379
  end
401
380
  end
402
381
 
403
- class BacktraceTests < UnitTests
404
- desc "Backtrace"
405
- setup do
406
- @backtrace = Backtrace.new(build_backtrace)
407
- end
408
- subject { @backtrace }
382
+ class InitBacktraceTests < UnitTests
383
+ desc "Backtrace when init"
384
+ subject { Backtrace.new(Factory.backtrace) }
409
385
 
410
386
  should have_cmeths :parse, :to_s
411
387
  should have_imeths :filtered
412
388
 
413
389
  should "be parseable from its string representation" do
414
- assert_equal subject, Backtrace.parse(Backtrace.to_s(subject))
390
+ assert_that(Backtrace.parse(Backtrace.to_s(subject))).equals(subject)
415
391
  end
416
392
 
417
393
  should "render as a string by joining on the newline" do
418
- assert_equal subject.join(Backtrace::DELIM), Backtrace.to_s(subject)
394
+ assert_that(Backtrace.to_s(subject)).equals(subject.join(Backtrace::DELIM))
419
395
  end
420
396
 
421
397
  should "be an Array" do
422
- assert_kind_of ::Array, subject
398
+ assert_that(subject).is_kind_of(::Array)
423
399
  end
424
400
 
425
401
  should "know its DELIM" do
426
- assert_equal "\n", Backtrace::DELIM
402
+ assert_that(Backtrace::DELIM).equals("\n")
427
403
  end
428
404
 
429
405
  should "another backtrace when filtered" do
430
- assert_kind_of Backtrace, subject
406
+ assert_that(subject).is_kind_of(Backtrace)
431
407
  end
432
408
 
433
409
  should "default itself when created from nil" do
434
- assert_equal ["No backtrace"], Backtrace.new
410
+ assert_that(Backtrace.new).equals(["No backtrace"])
435
411
  end
436
412
  end
437
413
  end