Rspecのテストでつまずいています。
アソシエーションをテストするためにはどのように書くのかよろしいのでしょうか....

理解していないことが2点あります。
1. factorygirlで1対多のアソシエーションで関連付けする方法がよく分からない(今回は銀行モデルが多くの支店(モデル)を持っているという関係性です)
2. indexのテストで銀行に紐づく支店を20件作成し、1ページ目は20件表示させることを保証したいのですが、現状うまくいっていません...

エラーログ

 BankBranchesController
  GET #index
    21件の支店データがある場合
      1ページ目は20件になること (FAILED - 1)

Failures:

  1) BankBranchesController GET #index 21件の支店データがある場合 1ページ目は20件になること
 Failure/Error: expect(assigns(:bank_branches).size).to eq Settings.per_page

   expected: 20
        got: 1

   (compared using ==)
  # ./spec/controllers/bank_branches_controller_spec.rb:14:in `block (4 levels) in <top (required)>'

app/model/bank.rb

has_many :bank_branches

app/model/bank_branch.rb

belongs_to :bank

factories/bank_branches.rb

FactoryGirl.define do
  factory :bank_branch, class: BankBranch do
    sequence(:id)
    sequence(:bank_id)
    sequence(:code)
    sequence(:name)      { |i| "BankBranchName#{ i }" }
    sequence(:name_kana) { |i| "BankBranchNameKana#{ i }" }

    association :bank, factory: :bank # これで関連付けは出来てるのでしょうか....
  end

end

factories/bank.rb

FactoryGirl.define do
  factory :bank, class: Bank do
    sequence(:id)
    sequence(:code)
    sequence(:name)      { |i| "BankName#{ i }" }
    sequence(:name_kana) { |i| "BankNameKana#{ i }" }
  end
end

app/controllers/bank_branches_controller.rb

def index
  @bank  = Bank.eager_load(:bank_branches).find(params[:bank_id])
  @query = bank.bank_branches.search(search_params)
  @bank_branches = @query.result.page(params[:page]).per(Settings.per_page).order(code: :asc)
end

spec/controllers/bank_branches_controller_spec.rb

describe BankBranchesController do
  describe 'GET #index' do
    include_examples 'http_status 200 ok'

    context '21件の支店データがある場合' do
      before do
        create_list(:bank_branch, 21)
      end

      it '1ページ目は20件になること' do
        get :index, params: { bank_id: 1 } 
        expect(assigns(:bank_branches).size).to eq Settings.per_page
      end

      it '2ページ目は1件になること' do
        get :index, params: { bank_id: 1, page: '2' }
        expect(assigns(:bank_branches).size).to eq Settings.per_page
      end
    end

    context '検索されるbank_branchesのデータ' do
      subject do
        get :index, params: { bank_id: 1, q: condition }
        assigns(:bank_branches)
      end

      before do
        @branch_data1 = create(:bank_branch, bank_id: 1, code: 1, name: '日本銀行', name_kana: 'ニホンギンコウ')

      context 'name_contに日本を指定した場合' do
        let(:condition) { { name_cont: '日本' } }
        it { is_expected.to match_array([@branch_data1]) }
      end
    end
  end

$ rake routes

bank_bank_branches GET    /banks/:bank_id/bank_branches(.:format)          bank_branches#index

ログを見る限り、create_listで21件のbank_branchデータが作成されていないことが問題な気がするのですがどうすれば21件作成されるようになるのでしょうか....
どんなことでも良いので改善策お持ちの方いらっしゃいましたら、大変恐縮ですが、ご教示いただけたら幸いです。
お手数おかけしますが、よろしくお願いします。