Class: Cucumber::Messages::TestCase

Inherits:
Message
  • Object
show all
Defined in:
lib/cucumber/messages/test_case.rb

Overview

Represents the TestCase message in Cucumber’s message protocol.

//// TestCases

*

A `TestCase` contains a sequence of `TestStep`s.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Message

camelize, from_json, #to_h, #to_json

Constructor Details

#initialize(id: '', pickle_id: '', test_steps: [], test_run_started_id: nil) ⇒ TestCase

Returns a new instance of TestCase.



30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/cucumber/messages/test_case.rb', line 30

def initialize(
  id: '',
  pickle_id: '',
  test_steps: [],
  test_run_started_id: nil
)
  @id = id
  @pickle_id = pickle_id
  @test_steps = test_steps
  @test_run_started_id = test_run_started_id
  super()
end

Instance Attribute Details

#idObject (readonly)

Returns the value of attribute id.



16
17
18
# File 'lib/cucumber/messages/test_case.rb', line 16

def id
  @id
end

#pickle_idObject (readonly)

The ID of the ‘Pickle` this `TestCase` is derived from.



21
22
23
# File 'lib/cucumber/messages/test_case.rb', line 21

def pickle_id
  @pickle_id
end

#test_run_started_idObject (readonly)

Identifier for the test run that this test case belongs to



28
29
30
# File 'lib/cucumber/messages/test_case.rb', line 28

def test_run_started_id
  @test_run_started_id
end

#test_stepsObject (readonly)

Returns the value of attribute test_steps.



23
24
25
# File 'lib/cucumber/messages/test_case.rb', line 23

def test_steps
  @test_steps
end

Class Method Details

.from_h(hash) ⇒ Object

Returns a new TestCase from the given hash. If the hash keys are camelCased, they are properly assigned to the corresponding snake_cased attributes.

Cucumber::Messages::TestCase.from_h(some_hash) # => #<Cucumber::Messages::TestCase:0x... ...>


50
51
52
53
54
55
56
57
58
59
# File 'lib/cucumber/messages/test_case.rb', line 50

def self.from_h(hash)
  return nil if hash.nil?

  new(
    id: hash[:id],
    pickle_id: hash[:pickleId],
    test_steps: hash[:testSteps]&.map { |item| TestStep.from_h(item) },
    test_run_started_id: hash[:testRunStartedId]
  )
end