как проверить механизм блокировки

Не обрезайте [], и все должно быть в порядке. [] идентифицируют массив JSON, который именно то, что вам нужно, чтобы выполнять итерацию его элементов.

2
задан Luiz E. 27 March 2019 в 09:22
поделиться

1 ответ

with_lock - это реализация Rails, которую нам не нужно тестировать. Вы можете использовать макет и проверить, звонит ли ваш код with_lock. Единственная хитрость здесь заключается в том, чтобы гарантировать, что транзакция импортируется (т. Е. Выполняется код внутри with_lock). RSpec предоставит блок, который вы можете вызвать. Ниже приведен фрагмент того, как вы можете это сделать - полная рабочая реализация может быть найдена здесь .

describe "#import_transactions" do
  it "runs with lock" do
    # Test if with_lock is getting called
    expect(subject).to receive(:with_lock) do |*_args, &block|
      # block is provided to with_lock method
      # execute the block and test if it creates transactions
      expect { block.call }
        .to change { BankAccountTransaction.count }.from(0).to(2)
    end

    ImportService.new.import_transactions(subject, transactions)
  end
end
0
ответ дан tejasbubane 27 March 2019 в 09:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: