class MinitestToRspec::Input::Subprocessors::Defn
Minitest
tests can be defined as methods using names beginning with 'test_'. Process those tests into RSpec `it` example blocks.
Public Class Methods
new(sexp, rails, mocha)
click to toggle source
Calls superclass method
MinitestToRspec::Input::Subprocessors::Base::new
# File lib/minitest_to_rspec/input/subprocessors/defn.rb, line 13 def initialize(sexp, rails, mocha) super(rails, mocha) @original = sexp.dup @exp = Model::Defn.new(sexp) sexp.clear end
Public Instance Methods
process()
click to toggle source
Using a `Model::Defn`, returns a `Sexp`
# File lib/minitest_to_rspec/input/subprocessors/defn.rb, line 21 def process if @exp.test_method? s(:iter, s(:call, nil, :it, s(:str, example_title)), 0, example_block) elsif @exp.setup? s(:iter, s(:call, nil, :before), 0, example_block ) elsif @exp.teardown? s(:iter, s(:call, nil, :after), 0, example_block ) else @original end end
Private Instance Methods
example_block()
click to toggle source
# File lib/minitest_to_rspec/input/subprocessors/defn.rb, line 51 def example_block block = s(:block) @exp.body.each_with_object(block) do |line, blk| blk << process_line(line) end end
example_title()
click to toggle source
Remove 'test_' prefix and replace underscores with spaces
# File lib/minitest_to_rspec/input/subprocessors/defn.rb, line 47 def example_title @exp.method_name.sub(/^test_/, '').tr('_', ' ') end
process_line(line)
click to toggle source
# File lib/minitest_to_rspec/input/subprocessors/defn.rb, line 58 def process_line(line) Processor.new(@rails, @mocha).process(line) end