我被赋予了使用testcafe构建测试服的任务,并且在我编写测试时,我偶然发现了一个特定问题"多少断言太多了?".基本上,在测试完成后,会生成一个报告.查看报告并不直观.例如,如果在网页上找不到元素,我会看到如下内容:
>Selector('tads') does not exist in the DOM.
Run Code Online (Sandbox Code Playgroud)
这迫使我手动完成测试以验证失败的原因.
根据testcafe文档,您可以向断言添加可选消息.如此处所见
截至目前,我在一些地方发布了一些消息.在每次点击或每次操作后都有一个断言(带有简明的错误信息)是否明智?(即单击登录按钮,执行断言以查看登录模式是否出现.现在登录,断言登录模式消失)
代码看起来像这样:
await t.click(this.loginButton);
await t.expect(this.loginButton.exists).ok("I don’t see the login button");
await signup.newUserSignUp();
await t.expect(this.loginButton.exists).notOk("The login modal didn’t disappear");
Run Code Online (Sandbox Code Playgroud)
任何反馈都会很棒.
我正在编写一个点击某些过滤器的测试,我注意到浏览器之间存在一些差异。例如,在主要浏览器(Chrome、Firefox、Safari)上,复选框以这种格式完全显示:Checkers、Cheese、Salsa、Butter。当我在 IE11 上运行测试时,这些字符串是小写的,因为它是小写的,所以我的测试失败了。为了解决这个问题,我希望使用正则表达式。我用来单击这些复选框的函数是可重用的。
我很困惑,因为我试图在正则表达式中传递字符串但测试失败。然后我继续创建一个模板文字,有人以这种方式在正则表达式中传递字符串,但测试仍然失败。我的问题是,是否有更聪明的方法将字符串变量传入正则表达式?
filterPage 看起来像:
export default class OrderHistory {
constructor() {
this.filter = Selector(
".filterCheckbox"
}
async selectFilter(text) {
await t.click(this.filter.withText(`/${text}`/i));
}
Run Code Online (Sandbox Code Playgroud)
测试页面如下所示:
test(“click the cheese filter”, async t => {
const cheeseFilter = Cheese;
await filterPage.selectFilter(cheeseFilter);
Run Code Online (Sandbox Code Playgroud)
});
我对一个特定问题感到困惑。我正在尝试使用 fetch api 设置 cookie,但我无法这样做。
static deleteorder = (domain = "http://localhost:8080/pc", order) => {
let cooks = "JSESSIONID=AFAFWEEVV2323GG";
fetch(deleteorder, {
method: `GET`,
credentials: 'same-origin',
headers: {
"Content-type": `application/x-www-form-urlencoded`,
},
})
.then(res => {
console.log(res.status);
})
.catch(error => {
console.log(error);
});
};
}
Run Code Online (Sandbox Code Playgroud)
当函数运行并200返回但数据保持不变时,意味着顺序保持不变。你们中的一个人能透露一下吗?我正处于学习 fetch api 的初级阶段,因此我们将不胜感激任何反馈。