30 lines
780 B
Ruby
30 lines
780 B
Ruby
# encoding: utf-8
|
|
|
|
require 'spec_helper'
|
|
|
|
describe Mutant::Killer, '#success?' do
|
|
subject { object.success? }
|
|
|
|
let(:object) { class_under_test.new(strategy, mutation) }
|
|
let(:strategy) { double('Strategy') }
|
|
let(:mutation) { double('Mutation', success?: kill_state) }
|
|
let(:kill_state) { double('Kill State') }
|
|
|
|
before do
|
|
kill_state.stub(freeze: kill_state, dup: kill_state)
|
|
end
|
|
|
|
let(:class_under_test) do
|
|
Class.new(described_class) do
|
|
def run
|
|
end
|
|
end
|
|
end
|
|
|
|
it_should_behave_like 'an idempotent method'
|
|
|
|
it 'should use kill state to gather success' do
|
|
mutation.should_receive(:success?).with(object).and_return(kill_state)
|
|
should be(kill_state)
|
|
end
|
|
end
|