cypress - 从固定装置动态地将字符串传递给“它”?
问题描述
我想动态地将一个字符串传递给it
一个固定装置(它解析为permissionsObj
)。请参阅代码中的 A 行。
dynamic string = some__static__string + ${headerPerms}
和
headerPerms = permissionsObj['header'];
但不知何故,headerPerms
当我传递给it
代码:
A 行: headerPerms 未定义。
B 行: headerPerms 记录成功。
无论如何我可以it
从固定装置动态传递字符串吗?
describe(`role based testing:: header`, function () {
let headerPerms;
before(() => {
cy.fixture('../fixtures/permissions').then((permissionsObj) => {
headerPerms = permissionsObj['header'];
});
cy.wait(1000);
});
it(`checks if dashboard_KB exists:: ${headerPerms}`, function () { // line A: headerPerms is undefined
cy.log(headerPerms);//Line B: logs successfully
});
});
截屏:
夹具:
{
"header": {
"dashboard_nav": {
"admin": true,
"developer": true,
"analyst": true,
"tester": true
},
"dashboard_KB": {
"admin": true,
"developer": true,
"analyst": false,
"tester": false
},
"dashboard_analytics": {
"admin": true,
"developer": true,
"analyst": true,
"tester": false
},
"dashboard_reports": {
"admin": true,
"developer": true,
"analyst": false,
"tester": false
},
"header-profile": {
"admin": true,
"developer": true,
"analyst": true,
"tester": true
},
"header-enterprise-profile": {
"admin": true,
"developer": false,
"analyst": false,
"tester": false
},
"header-sign-out": {
"admin": true,
"developer": true,
"analyst": true,
"tester": true
}
}
}
解决方案
你不能像这样链接你的对象值。基本上,您正在丢失上下文,因此您将标头值视为未定义。
使用下面的代码片段,它会像魅力一样工作。
const fixtures = require("../fixtures/headersJsonFile");
describe('feature', function () {
const headers = Object.keys(fixtures.header);
headers.forEach(header => {
it(`header ${header} test`, () => {
cy.log('', header);
});
});
});
我已经验证并且它正在工作....下面是相同的输出。
feature
✓ header dashboard_nav test
✓ header dashboard_KB test
✓ header dashboard_analytics test
✓ header dashboard_reports test
✓ header header-profile test
✓ header header-enterprise-profile test
✓ header header-sign-out test
推荐阅读
- smtp - SMTP 功能不会发送
- c# - 如何在数据模板中调用按钮?
- docker-compose - 在 GitLab 或 Travis 等云 CI 服务器上的 docker-compose Stack 中,Confluent Kafka 客户端的正确用法是什么?
- c# - 无法使用单例 Windows 主机服务中的作用域服务
- firebase - (承诺)FirebaseError:权限缺失或不足
- linux - 为什么我无法从其 RStudio 服务器访问 ec2 实例的文件?
- oracle-adf - oracle.adf.controller.ControllerException:ADFC-10001:无法实例化类
- c# - 如何在塔防游戏中让敌人停止并开始移动?
- html - 如何在文本框中移动用户输入?
- ruby-on-rails - Rspec 需要状态代码 201,但在代码 200 上失败