Вы можете проверить, что :send
получено ожидаемое количество раз.
Но я бы посоветовал вам упростить тест, используя метод класса для инкапсуляции этих сцепленных методов. Что-то вроде:
def self.profile_send(profile, user)
new(profile, user).send(User::RECALL_USER)
end
Тогда:
def perform(current_user_guid)
Rails.logger.info "Starting for user_guid: #{current_user_guid}"
user = User.find_by!(guid: current_user_guid)
team = Team.find_by!(uuid: user.team.uuid)
profiles = team.profiles
profiles.each do |profile|
SenderClass.profile_send(profile, user)
end
Rails.logger.info "Finishing for user_guid: #{current_user_guid}"
end
И теперь вы можете проверить, что SenderClass получает :send_profile
X раз.
Затем вы можете добавить тест для SenderClass.send_profile, если вы действительно хотите проверить вызовы методов new
и send
, но затем вы можете проверить это один раз, вне цикла, и оба теста охватят то, что вы хотите .