Ruby - FactoryBot - When Factories with Dependencies Toss Validation Errors
Please note that all opinions are that of the author.
Pizza courtesy of Pizza for Ukraine!
Donate Now to Pizza for Ukraine
Last Updated On: 2025-10-13 07:27:40 -0400
Started
# factory :link do # url {‘https://fan-app-qa.azurewebsites.net/admin/’} # domain {‘fan-app-qa.azurewebsites.net’} # root_domain {‘azurewebsites.net’} #. environment # end
Then
❯ be rails test test/models/link_namer_test.rb Running 1 tests in a single process (parallelization threshold is 50) Run options: –seed 17236
Running:
E
Error:
LinkNamerTest#test_a_link_with_a_link_type_of_issue_tracker_and_a_domain_of_github_should_NOT_have_a_name_of_GitHub_source_code_repo_and_tools:
ActiveRecord::RecordInvalid: Validation failed: Project can’t be blank, User can’t be blank, User must exist, Project must exist
test/models/link_namer_test.rb:9:in `block in
then clean slate
/Users/sjohnson/.rvm/gems/ruby-3.1.2/gems/activerecord-7.0.4/lib/active_record/validations.rb:80:in `raise_validation_error’: Validation failed: Account can’t be blank, Account must exist, Environment must exist (ActiveRecord::RecordInvalid) 3.1.2 :002 > reload!
factory :link do account environment project user url {‘https://fan-app-qa.azurewebsites.net/admin/’} domain { ‘fan-app-qa.azurewebsites.net’ } root_domain { ‘azurewebsites.net’ } link_type { ‘execution_url’ } end
ALL dependencies must be satisfied