RSpecのテストで別タブをテストする方法

はじめに

RSpecのsystemテストで、リンクをクリックした時に別タブを開くときがあったので調べてみました。

RSpecのテストで別タブに移動する方法

rspecのテストの途中で別タブ内のテストもしたい場合には、

「click_link」や「click_button」のあとに下記のメソッドを入れる。

switch_to_window(windows.last) # 最後に開いたタブに移動
# もしくは
switch_to_window(windows.second) # 二つ目のタブに移動

実際に使ってみた

      it 'Project詳細からTask一覧ページにアクセスした場合、Taskが表示されること' do
        visit project_path(project)
        click_link 'View Todos'  #←このリンクをクリックすると別タブで開くような挙動になっている
        switch_to_window(windows.last)  #ここからは別タブ内のテスト
        expect(page).to have_content task.title
        expect(Task.count).to eq 1
        expect(current_path).to eq project_tasks_path(project)
      end