free_mutant/spec/unit/mutant/subject/each_spec.rb

32 lines
965 B
Ruby
Raw Normal View History

require 'spec_helper'
2012-08-01 18:34:03 +02:00
describe Mutant::Subject, '#each' do
2013-06-25 00:37:45 -07:00
subject { object.each { |item| yields << item } }
2013-01-13 22:32:03 +01:00
let(:class_under_test) do
mutations = [mutation_a, mutation_b]
Class.new(described_class) do
define_method(:mutations) { mutations }
end
2013-01-13 22:32:03 +01:00
end
let(:object) { class_under_test.new(context, node) }
let(:yields) { [] }
let(:node) { mock('Node') }
let(:context) { mock('Context') }
let(:mutant) { mock('Mutant') }
let(:mutation_a) { mock('Mutation A') }
let(:mutation_b) { mock('Mutation B') }
2012-08-01 18:19:12 +02:00
it_should_behave_like 'an #each method'
let(:neutral_mutation) do
Mutant::Mutation::Neutral.new(object, node)
end
it 'yields mutations' do
expect { subject }.to change { yields.dup }.from([])
.to([neutral_mutation, mutation_a, mutation_b])
end
end