У меня есть этот фрагмент кода RoR, который создает репозиторий gitlab. Если хранилище уже существует, метод возвращает false с сообщением об ошибке.
class CreateRepositoryJob < ApplicationJob
queue_as :default
def perform(id)
namespace = Gitlab.create_group("applications", "applications")
begin
repo = Gitlab.create_project(id, namespace_id: namespace.id).to_hash.symbolize_keys
[true, repo]
rescue Gitlab::Error::BadRequest => e
[false, e]
end
end
end
`` `
Я хотел бы проверить этот метод, в частности, когда хранилище уже существует. Я использую rspec-mocks и вот что у меня есть:
it "cannot be created because the repository already exists" do
# some mocks...
allow(Gitlab).to receive(:create_project).with(anything).and_raise(Gitlab::Error::BadRequest)
added, repo = CreateRepositoryJob.perform_now entity, entity_directory
expect(added).to be false
end
Тест возвращает true . Кажется, исключение не сработало.
Есть идеи, что происходит?