赛普拉斯将返回的字符串视为对象,因此我尝试使用cy.wrap()将值解析为字符串。
我有一个赛普拉斯自定义命令,如下所示:
Cypress.Commands.add('emailAddress', () => {
var emailAddress = 'testEmail-' + Math.random().toString(36).substr(2, 16) + '@mail.com';
return cy.wrap(emailAddress);
})
我需要在测试中将返回值作为字符串:
beforeEach(() => {
var user = cy.emailAddress().then(value => cy.log(value)); // [email protected]
logonView.login(user) // object{5}
})
如何在我的登录名和测试中的其他地方使用字符串值?
类似于:logonView.login(user.value)
...但是这行不通吗?
赛普拉斯,你不能返回值这样的
var user = cy.emailAddress().then(value => cy.log(value));
相反,您可以在then.then
回调中获取返回值:
cy.emailAddress().then((value) => {
logonView.login(user)
});
因此,对于您的测试,您可以改为执行以下操作:
describe("My test", () => {
beforeEach(() => {
cy.emailAddress().then((value) => {
logonView.login(user)
});
});
it("should have logged into the App", () => {
// Write your test here
});
});
或者在每个块之前使用一个变量,然后在测试中稍后使用它:
describe("element-one", () => {
let user;
beforeEach(() => {
cy.emailAddress().then((value) => (user = value));
});
it("it should have user value", () => {
expect(user).to.includes("testEmail");
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句