Sha256: d4e8db6b8109cb4477ab062031b1e259919b24863127ac7247b784d432b99bf7

Contents?: true

Size: 1.41 KB

Versions: 24

Compression:

Stored size: 1.41 KB

Contents

# encoding: utf-8

require 'spec_helper'

describe Mutant::Runner::Subject, '#success?' do
  subject { object.success? }

  let(:object) { described_class.new(config, mutation_subject) }

  let(:mutation_subject) do
    double(
      'Subject',
      class:     Mutant::Subject,
      mutations: [mutation_a, mutation_b]
    )
  end

  let(:reporter)   { double('Reporter')                   }
  let(:config)     { double('Config', reporter: reporter) }
  let(:mutation_a) { double('Mutation A')                 }
  let(:mutation_b) { double('Mutation B')                 }

  let(:runner_a) do
    double('Runner A', success?: success_a, stop?: stop_a)
  end

  let(:runner_b) do
    double('Runner B', success?: success_b, stop?: stop_b)
  end

  before do
    reporter.stub(report: reporter)
    Mutant::Runner.stub(:run).with(config, mutation_a).and_return(runner_a)
    Mutant::Runner.stub(:run).with(config, mutation_b).and_return(runner_b)
  end

  context 'with failing mutations' do
    let(:stop_a)    { false }
    let(:stop_b)    { false }
    let(:success_a) { false }
    let(:success_b) { true  }

    it { should be(false) }

    it_should_behave_like 'an idempotent method'
  end

  context 'without failing mutations' do
    let(:stop_a)    { false }
    let(:stop_b)    { false }
    let(:success_a) { true  }
    let(:success_b) { true  }

    it { should be(true) }

    it_should_behave_like 'an idempotent method'
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
mutant-0.5.12 spec/unit/mutant/runner/subject_spec.rb
mutant-0.5.11 spec/unit/mutant/runner/subject_spec.rb
mutant-0.5.10 spec/unit/mutant/runner/subject_spec.rb
mutant-0.5.9 spec/unit/mutant/runner/subject_spec.rb
mutant-0.5.8 spec/unit/mutant/runner/subject_spec.rb
mutant-0.5.7 spec/unit/mutant/runner/subject_spec.rb
mutant-0.5.6 spec/unit/mutant/runner/subject_spec.rb
mutant-0.5.5 spec/unit/mutant/runner/subject_spec.rb
mutant-0.5.4 spec/unit/mutant/runner/subject_spec.rb
mutant-0.5.3 spec/unit/mutant/runner/subject_spec.rb
mutant-0.5.2 spec/unit/mutant/runner/subject_spec.rb
mutant-0.5.1 spec/unit/mutant/runner/subject_spec.rb
mutant-0.5.0 spec/unit/mutant/runner/subject_spec.rb
mutant-0.3.6 spec/unit/mutant/runner/subject_spec.rb
mutant-0.3.5 spec/unit/mutant/runner/subject_spec.rb
mutant-0.3.4 spec/unit/mutant/runner/subject_spec.rb
mutant-0.3.3 spec/unit/mutant/runner/subject_spec.rb
mutant-0.3.2 spec/unit/mutant/runner/subject_spec.rb
mutant-0.3.1 spec/unit/mutant/runner/subject/success_predicate_spec.rb
mutant-0.3.0 spec/unit/mutant/runner/subject/success_predicate_spec.rb