web-dev-qa-db-ja.com

サイプレスで新しいルートへのリダイレクトをテストする

Webアプリケーションのテストに Cypress を使用しています。

このスニペットは現在機能しており、新しいものを送信します。

describe('The Create Page', () => {
  it('successfully creates a thing', () => {
    cy.visit('/create')
    cy.get('input[name=description]').type('Hello World')
    cy.get('button#submit')
      .click()

    // After POST'ing this data via AJAX, the web app then
    // receives the id of the new thing that was just created
    // and redirects the user to /newthing/:id
    // How do I test that this redirection worked?
  })
})

コメントが示すように、新しいルートへのリダイレクトが機能するかどうかをテストする方法がわかりません。ブラウザのシミュレーションでリダイレクトが機能することがわかります。テストを追加したいだけです。

ありがとう!!!

11
SeanPlusPlus

あなたがする必要があるのは、URLが期待された状態にあると断言することです。

サイプレスには、URLに関するアサーションを作成するために使用できる多くのコマンドがあります。具体的には、 cy.url()cy.location() またはcy.hash()が要件を満たす場合があります。おそらく、ユースケースの最適な例は次のとおりです。

cy.location('pathname').should('eq', '/newthing/:id')
16