Page:テストするwebページの、要素や共通の関数を抽出して格納するクラス。

Page Model | Best Practices | Guides | Docs

上記の中の表現で、下記の講座でいう「良くない書き方」があるので、それを書き直してみる。

シナリオベースのコードをgithugでググって参考にするとか

リファクタリングの仕方があるのがよかった。ていうか、全部良い。暗記したい。

Screen Shot 2022-08-17 at 0.26.46.png

test('Click check boxes and then verify their state', async t => {
    for (const feature of page.featureList) {
        await t
            .click(feature.label)
            .expect(feature.checkbox.checked).ok();
    }
});

↑ for文で回すのが良くない

test('Click check boxes and then verify their state', async t => {
		const checkbox1 = Selector(`Support for testing on remote devices`);
    await t
        .click(checkbox1)
        .expect(feature.checkbox.checked).ok();
});

class Page {
    constructor () {
        this.nameInput             = Selector('#developer-name');
        this.triedTestCafeCheckbox = Selector('#tried-test-cafe');
        this.populateButton        = Selector('#populate');
        this.submitButton          = Selector('#submit-button');
        this.results               = Selector('.result-content');
        this.commentsTextArea      = Selector('#comments');

        this.featureList = [
            new Feature('Support for testing on remote devices'),
            new Feature('Re-using existing JavaScript code for testing'),
            new Feature('Running tests in background and/or in parallel in multiple browsers'),
            new Feature('Easy embedding into a Continuous integration system'),
            new Feature('Advanced traffic and markup analysis')
        ];

        this.osList = [
            new OperatingSystem('Windows'),
            new OperatingSystem('MacOS'),
            new OperatingSystem('Linux')
        ];

テストコードの書き方

JUnit 実践講座 - プログラミングスタイルガイド

テストコードの書き方、役に立つコツ

JUnit 実践講座 - シナリオベースのテストケースの書き方

JUnit 実践講座 - オブジェクトの文字列表現を活用しよう