У меня есть простой AWS лямбда-обработчик для Ruby 2.5.0, который я хочу протестировать. Я нашел довольно крутой пример как это сделать, но я застрял в начале с ошибкой uninitialized constant Bot
.
source/handlers/jira_handler.rb
require_relative '../config/environment'
module Bot
module JiraHandler
extend self
def handle(event:, context:)
Slack::SlackMessenger.new(event).call
{ statusCode: 200 }
end
end
end
Модуль JiraHandler Из-за соглашения внутри модуля Bot вся установка была выполнена с использованием terraform.
spec/source/handlers/jira_handler_spec.rb
require 'spec_helper'
RSpec.describe Bot::JiraHandler do
subject { Bot::JiraHandler }
describe '#handle' do
context 'when Jira webhook is launched' do
let!(:payload) { File.new('./spec/support/events/event.json').read }
let!(:context) { {} }
let!(:event) do
{
'body' => payload
}
end
let(:response) { subject.handler(event: event, context: context) }
it 'responds successfully' do
allow_any_instance_of(Slack::SlackMessenger).to receive(:call)
expect(response).to include(statusCode: 200)
end
end
end
end
Я получил NameError: uninitialized constant Bot
. Как инициализировать эти объекты собственного модуля в спецификации?