42 lines
1 KiB
Ruby
42 lines
1 KiB
Ruby
RSpec.describe Mutant::Loader, '.call' do
|
|
subject do
|
|
described_class.call(
|
|
binding: binding,
|
|
kernel: kernel,
|
|
node: node,
|
|
subject: mutation_subject
|
|
)
|
|
end
|
|
|
|
let(:path) { instance_double(Pathname, to_s: path_str) }
|
|
let(:path_str) { instance_double(String) }
|
|
let(:line) { instance_double(Fixnum) }
|
|
let(:kernel) { class_double(Kernel) }
|
|
let(:binding) { instance_double(Binding) }
|
|
let(:source) { instance_double(String) }
|
|
let(:node) { instance_double(Parser::AST::Node) }
|
|
|
|
let(:mutation_subject) do
|
|
instance_double(
|
|
Mutant::Subject,
|
|
source_path: path,
|
|
source_line: line
|
|
)
|
|
end
|
|
|
|
it 'performs expected kernel interaction' do
|
|
expect(Unparser).to receive(:unparse)
|
|
.with(node)
|
|
.and_return(source)
|
|
|
|
expect(kernel).to receive(:eval)
|
|
.with(
|
|
source,
|
|
binding,
|
|
path_str,
|
|
line
|
|
)
|
|
|
|
subject
|
|
end
|
|
end
|