我是赛普拉斯的新手,我试图在代码中使用固定装置,并且如果我使用aliasnamename.variablename方式,还会不断收到ReferenceError。
describe('Fixture Demo', function() {
it('This works', function() {
cy.fixture('admindetails').then((user) => {
cy.log(user.username)
})
})
it('This does not work', function() {
cy.fixture('admindetails').as(user)
cy.log(user.username)
})
})
我同时包括了有效的方法和无效的方法。我的问题是如何使用别名简单地使用user.username?我什至尝试了@ user.username,它不起作用。我正在尝试进行第二次测试。任何帮助将不胜感激。预先感谢。
答案 0 :(得分:0)
您的第二个测试用例不是执行此操作的有效方法,您的第一个测试是正确的方法。
user
只是一个普通的Javascript变量。在第二个测试中,您尝试在定义变量之前使用user
变量,这就是为什么会出现错误的原因。
这是使用别名from the docs的正确方法:
cy.fixture('admindetails').as('usersJSON')
cy.route('GET', '/users/**', '@usersJSON') // or another command that supports aliasing
您的第一个测试用例也很好用,如果以后需要夹具的内容,它们将存储为user
:
cy.fixture('admindetails').then((user) => {
cy.log(user.username)
/** add any other test code that needs `user` here **/
})
/** write the rest of your tests here, they will execute after the .then block **/