File: erroring_gracefully_test.rb

package info (click to toggle)
ruby-riot 0.12.7-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster, forky, sid, trixie
  • size: 512 kB
  • sloc: ruby: 2,557; makefile: 2
file content (47 lines) | stat: -rw-r--r-- 1,310 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
require 'teststrap'

context "Executing setup with an error" do
  setup do
    Riot::Setup.new { raise "Error in setup" }.run(Riot::Situation.new)
  end

  asserts("result") { topic[0] }.equals(:setup_error)
  asserts("result object") { topic[1] }.kind_of(Exception)
  asserts("error message") { topic[1].message }.equals("Error in setup")
  
end # Executing setup with an error

context "Executing a context" do
  context "that errors during setup" do
    setup do
      Riot::Context.new("A") {
        setup { raise "Whoopsie!" } # error
        asserts("foo") { true }     # success
        asserts("bar") { false }    # failure
      }.run(Riot::SilentReporter.new)
    end

    asserts(:errors).equals(1)
    asserts(:failures).equals(0)
    asserts(:passes).equals(0)
  end # that errors during setup
  
  context "that errors in a parent setup" do
    setup do
      Riot::Context.new("A") {
        setup { raise "Whoopsie!" } # error

        context "B" do
          asserts("foo") { true }     # success
          asserts("bar") { false }    # failure
        end
      }.run(Riot::SilentReporter.new)
    end

    asserts(:errors).equals(2) # Same setup fails twice
    asserts(:failures).equals(0)
    asserts(:passes).equals(0)
  end # that errors in a parent setup
  
end # Executing a cotext