examples_and_tests_together.feature

features/interop/examples_and_tests_together.feature
Last Update: Sun Sep 20 09:59:11 -0500 2009

Feature: Spec and test together

As an RSpec adopter with existing Test::Unit tests
I want to run a few specs alongside my existing Test::Unit tests
So that I can experience a smooth, gradual migration path

Scenario Outline: Run specs and tests together
  Given a file named "spec_and_test_together.rb" with:
  """
  require 'spec/autorun'
  require 'spec/test/unit'

  describe "An Example" do
    it "should pass with assert" do
      assert true
    end

    it "should fail with assert" do
      assert false
    end

    it "should pass with should" do
      1.should == 1
    end

    it "should fail with should" do
      1.should == 2
    end
  end

  class ATest < Test::Unit::TestCase
    def test_should_pass_with_assert
      assert true
    end

    def test_should_fail_with_assert
      assert false
    end

    def test_should_pass_with_should
      1.should == 1
    end

    def test_should_fail_with_should
      1.should == 2
    end

    def setup
      @from_setup ||= 3
      @from_setup += 1
    end

    def test_should_fail_with_setup_method_variable
      @from_setup.should == 40
    end

    before do
      @from_before = @from_setup + 1
    end

    def test_should_fail_with_before_block_variable
      @from_before.should == 50
    end

    define_method :"test: should run with strange name" do
      assert true
    end
  end
  """

  When I run "<Command> spec_and_test_together.rb -fs"

  Then the exit code should be 256
  And the stdout should include "ATest"
  And the stdout should include "Test::Unit::AssertionFailedError in 'An Example should fail with assert'"
  And the stdout should include "'An Example should fail with should' FAILED"
  And the stdout should include "11 examples, 6 failures"
  And the stdout should include /expected: 40,\s*got: 4/m
  And the stdout should include /expected: 50,\s*got: 5/m

Scenarios: run with ruby and spec
  | Command |
  | ruby    |
  | spec    |