0

Я нахожу, что мне часто нравится писать методы, которые просто запрашивают базу данных и возвращают результаты. Это действительно полезно для сложных фильтров или запроса «цепочка». Например, вот модель Clazz, которая представляет собой академический класс студентов. Clazz имеет много Enrollment s. Поэтому я написал этот метод, чтобы сохранить мой код DRY, так как я использовал этот критерий много.Переписывание метода, подлежащего тестированию по модулю

class Clazz 
    def cash_enrollments 
     enrollments.where(payment_type: 'cash') 
    end 
end 

Как я получаю больше в модульное тестирование, я заметил, что эта модель является проблематичным, так как он слишком тесно связан с базой данных. Проблема усугубляется при тестировании больших наборов данных по мере запуска транзакций базы данных.

Есть ли способ, «совместимый с модулем», чтобы переписать этот код? Будет ли еще один общий шаблон, который будет лучше?

+0

Вы можете окурок его: 'clazz.should_receive (: cash_enrollments) .and_return ([this_prebuilt_array])' –

+0

не совсем уверен, но проверить хранилище шаблон –

ответ

Смежные вопросы