查看TestCafe的页面对象模型时,我注意到所有类都标记为default
,而不是典型的命名类。
http://devexpress.github.io/testcafe/documentation/recipes/using-page-model.html
我想知道这背后的原因是什么,它在某种程度上有助于测试控制器的通过和浏览器操作的排队吗?
TestCafe允许您避免将测试控制器显式传递给方法。相反,您可以将t导入页面模型文件。 link
我想避免按照this article的建议使用默认类,但是我想知道与TestCafe有关的权衡。谢谢。
答案 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);
});
这只是组织代码的问题,因此您可以以适合自己的方式编写代码。