首页 > 解决方案 > 从固定装置动态地将字符串传递给“它”?

问题描述

我想动态地将一个字符串传递给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
    }
  }
}

标签: cypress

解决方案


你不能像这样链接你的对象值。基本上,您正在丢失上下文,因此您将标头值视为未定义。

使用下面的代码片段,它会像魅力一样工作。

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

推荐阅读