我正在尝试从另一个文件访问const变量。这是结构:
我有 welcome.spec.js ,在这里我声明了一个const变量,如下所示,并将其导出。我正在使用此规范的值。
context('Welcome', () => {
// Generating a random userCount value for further verifications.
const userCount = (Math.round(Math.random()*10))
module.exports = {userCount}
beforeEach(() => {
cy.visit('/')
cy.clearCookies()
})
我也有 payments.spec.js ,我需要在其中使用完全相同的值。
context('Payment', () => {
const {userCount} = require ('../welcome/welcome.spec')
beforeEach(() => {
cy.visit('/')
cy.clearCookies()
})
在某些情况下,我需要根据随机生成的值做出一些断言。此结构有效,但未达到我的预期。结果如下:
如您所见,在付款下,它也从 Welcome 导入了我的所有测试。我有重复的测试,而这2个欢迎测试之间的随机生成值有所不同。
我尝试过的事情:
将const声明移出context
。
试图创建自定义命令(../support/commands),但出现类似 userCount不是函数或 userCount未定义的错误。另外,我也尝试在赛普拉斯的支持文件夹下使用index.js。
如何在不复制测试并使用相同值的情况下从另一个文件访问该const变量?我应该如何进行?我做申报和出口的方式不对吗?
注意:根据值==> const userCount,用户在“欢迎”屏幕上输入该值,并在付款上根据该值显示输入字段。 (3个用户==> 3个用户信息字段,依此类推)
提前谢谢! 问候。
答案 0 :(得分:1)
将const导出到上下文之外。导入(ES6)时,可以通过这种方式在另一个文件中访问它。
welcome.spec.js
const userCount = (Math.round(Math.random()*10))
context('Welcome', () => {
// Generating a random userCount value for further verifications.
module.exports = {userCount}
beforeEach(() => {
cy.visit('/')
cy.clearCookies()
})
payments.spec.js
import {userCount} from "../welcome/welcome.spec";