TestCafeを使ってみる

はじめに

使ったこと無いE2Eフレームワークを触ってみる月間第四弾
あきらかにテストしてくれそうなこちらです。

devexpress.github.io

インストール

$ npm install --save-dev testcafe

ディレクトリ構成

$ tree -L 1
.
├── node_modules
├── package-lock.json
├── package.json
└── simple_spec.js

テストを書く

simple_spec.js

import { Selector } from 'testcafe';

fixture `My First Test`
    .page `http://teamspirit.hatenablog.com/`;

test('Search riririusei99', async t => {
    await t
      .typeText('input[type=text', 'riririusei99')
      .click('input[type=submit]');

    const title = await t.eval(() => document.title);
    await t.expect(title).eql('riririusei99 の検索結果 - TeamSpirit Developer Blog');
});

テスト実行

$ ./node_modules/testcafe/bin/testcafe-with-v8-flag-filter.js chrome simple_spec.js
 Running tests in:

 My First Test
 ✓ Search riririusei99


 1 passed (12s)

今回使ってみての感想

触ってみて5分もたたずに動きました。ほぼ設定いじってない状態で動いたので導入が簡単。
async/awaitを使ってテストコードをかけるようになりましたので、フロントのエンジニアは抵抗なく書けるのかな。
一通り触り終わったら使い込んでみたくなりました。

今回触ったもの

github.com