Module: RSpec::Core::Pending
- Included in:
- ExampleGroup
- Defined in:
- lib/rspec/core/pending.rb
Defined Under Namespace
Classes: PendingDeclaredInExample, PendingExampleFixedError
Constant Summary collapse
- NO_REASON_GIVEN =
'No reason given'
- NOT_YET_IMPLEMENTED =
'Not yet implemented'
Instance Method Summary collapse
-
#pending(*args) ⇒ Object
Stops execution of an example, and reports it as pending.
Instance Method Details
#pending ⇒ Object #pending(message) ⇒ Object #pending(message, &block) ⇒ Object
Note:
‘before(:each)` hooks are eval’d when you use the ‘pending` method within an example. If you want to declare an example `pending` and bypass the `before` hooks as well, you can pass `:pending => true` to the `it` method:
it "does something", :pending => true do
# ...
end
Stops execution of an example, and reports it as pending. Takes an optional message and block.
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/rspec/core/pending.rb', line 71 def pending(*args) return self.class.before(:each) { pending(*args) } unless example = args.last.is_a?(Hash) ? args.pop : {} = args.first || NO_REASON_GIVEN if [:unless] || (.has_key?(:if) && ![:if]) return block_given? ? yield : nil end example.[:pending] = true example.[:execution_result][:pending_message] = if block_given? begin result = begin yield example.example_group_instance.instance_eval { verify_mocks_for_rspec } end example.[:pending] = false rescue Exception => e example.execution_result[:exception] = e ensure teardown_mocks_for_rspec end raise PendingExampleFixedError.new if result end raise PendingDeclaredInExample.new() end |