Typescript TestCafe默认与命名类

Typescript TestCafe默认与命名类,typescript,automated-tests,e2e-testing,testcafe,Typescript,Automated Tests,E2e Testing,Testcafe,查看TestCafe的页面对象模型,我注意到所有类都标记为default,而不是典型的命名类 我想知道这背后的原因是什么,它是否有助于测试控制器的通过和浏览器操作的排队 TestCafe允许您避免显式地将测试控制器传递给方法。相反,您可以将t导入页面模型文件 我想避免像建议的那样使用默认类,但我想知道TestCafe的具体权衡。谢谢。对于TestCafe,不需要使用默认的关键字。此外,它不会影响测试通过或浏览器的操作。这只是一种从带有一个类的模块中导出/导入类的方法。如果您想编写自己的模块,可

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

我想知道这背后的原因是什么,它是否有助于测试控制器的通过和浏览器操作的排队

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


我想避免像建议的那样使用默认类,但我想知道TestCafe的具体权衡。谢谢。

对于TestCafe,不需要使用默认的
关键字。此外,它不会影响测试通过或浏览器的操作。这只是一种从带有一个类的模块中导出/导入类的方法。如果您想编写自己的模块,可以使用一个模块和两个类:

页面模型:

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);
});
这只是一个组织代码的问题,这样您就可以以适合自己的方式编写代码