assert 2.18.0 → 2.19.0

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