TestCafe默认与命名类

时间:2018-10-24 14:06:04

标签: typescript automated-tests e2e-testing testcafe

查看TestCafe的页面对象模型时,我注意到所有类都标记为default,而不是典型的命名类。

http://devexpress.github.io/testcafe/documentation/recipes/using-page-model.html

我想知道这背后的原因是什么,它在某种程度上有助于测试控制器的通过和浏览器操作的排队吗?

  

TestCafe允许您避免将测试控制器显式传递给方法。相反,您可以将t导入页面模型文件。 link

我想避免按照this article的建议使用默认类,但是我想知道与TestCafe有关的权衡。谢谢。

1 个答案:

答案 0 :(得分:2)

对于TestCafe,不需要使用default关键字。而且,它不影响测试通过或浏览器的操作。这只是从具有一个类的模块中导出/导入类的一种方法。如果要编写自己的页面模型,则可以将一个模块与两个类一起使用:

页面模型:

import { Selector } from 'testcafe';

export class PageModel1 {
    constructor () {
        this.h1  = Selector('h1');
        this.div = Selector('div');
    }
}

export class PageModel2 {
    constructor () {
        this.body = Selector('body');
        this.span = Selector('span');
    }
}

测试代码:

import { PageModel1, PageModel2 } from './models';

const pm1 = new PageModel1();
const pm2 = new PageModel2();

test(`Recreate invisible element and click`, async t => {
    await t.click(pm1.div);
    await t.click(pm1.h1);

    await t.click(pm2.body);
    await t.click(pm2.span);
});

这只是组织代码的问题,因此您可以以适合自己的方式编写代码。