Можно написать то, что вы хотите. Итерации по всем полям модели, генерируйте параметры, которые отражают эти поля, а затем запускают функциональные тесты на ваших контроллерах. Проблема в том, что тест является хрупким. Что делать, если вы действительно не хотите, чтобы все поля были доступны для записи через параметры? Что делать, если вы ссылаетесь на модель на другом контроллере за пределами стандартного шаблона? Как вы будете обрабатывать данные, которые будут проходить разные проверки? Вы либо должны быть уверены, что ваше приложение будет написано определенным образом, либо этот тест станет все более сложным для обработки дополнительных случаев.
Я думаю, что решение в тестировании было бы попытаться сохранить вещи простыми; что вы внесли изменения в систему, и в результате этого изменения соответствующие тесты необходимо будет обновить. В этом случае вы обновите функциональные и модульные тесты, затронутые этой моделью. Если вы строго придерживаетесь Test Driven Design, вы должны сначала обновить тесты, чтобы создать неудачный тест, а затем реализовать изменение. В результате, надеюсь, обновленный функциональный тест потерпел бы неудачу в этом случае.
Вне тестирования вы можете захотеть взглянуть на линкер. По сути, вы спрашиваете, можете ли вы поймать ошибку, когда параметры, переданные методу объекта, не соответствуют сигнатуре. Это более увлекательно при полном анализе кода (т. Е. Компиляции в среде статического типа).
EDIT - я пропустил шаг на листинге, так как вам также нужно будет написать свой код определенным образом, чтобы линтер поймал его, например, более явным образом переданного ему метода и параметров.
Если вы просите людей найти стороннюю библиотеку, чтобы делать то, что вы хотите, пожалуйста, имейте в виду, что такие запросы не относятся к теме переполнения стека. Дополнительную информацию см. В [Файл справки переполнения] (http://www.stackoverflow.com/help). Если вы просто спрашиваете, возможно ли то, что вы хотите, я уверен, что это так. Возможно, это может быть драгоценный камень, который вы готовы внести в сообщество. – MarsAtomic