Мне не совсем понятно, о чем вы спрашиваете, но я собираюсь предположить, что это что-то вроде: «Если у меня есть класс, и я расширяю этот класс с помощью модуля, где я должен проверить функциональность, предоставляемая модулем? "
Лично, когда я пишу модуль для использования в качестве миксина, я стараюсь убедиться, что он имеет достаточно надежное тестирование, независимо от того, к каким классам я в конечном итоге планирую его смешать. Как правило, я определяю класс в наборе тестов, который не делает ничего, кроме расширения для модуля, а затем пишу тесты, чтобы убедиться, что тестовый класс обладает всеми ожидаемыми функциональными возможностями. (Вы можете увидеть примеры этого в моем Classy gem, который является просто набором смешанных модулей.) Если модуль предназначался для расширения ActiveRecord или какого-либо другого класса, над которым у меня не было никакого контроля, я я бы определил класс ActiveRecord как возможный и работал бы с этим, хотя в идеале я бы старался сохранять функциональность моего модуля ортогональной по сравнению с ActiveRecord, когда это возможно.
Если изменения в ActiveRecord приводят к срыву ваших тестов, тогда возникает вопрос о том, каковы ваши цели в написании вашего модуля. Если вы хотите, чтобы он был общедоступным и полезным для общественности, то вы, вероятно, хотите, чтобы он работал с новейшей версией, и эти неудачные тесты точно сообщают об ошибках, которые необходимо исправить. Если вы хотите, чтобы он работал только с любой версией, которую вы используете локально для своего собственного проекта, тогда вы можете просто запустить тесты для этой версии, и вам не нужно беспокоиться об ее изменении.
Предполагая, что у меня есть контроль над классом, к которому я примешиваюсь, я, вероятно, не буду слишком сильно тестировать функциональность модуля в тестах для класса - для этого нужны тесты модулей. У меня будет один или два контрольных примера, чтобы убедиться, что он в целом работает, и я протестирую любые специфические взаимодействия или сложности, специфичные для тестируемого класса, и, возможно, оставлю это на этом.