Angular 中的 Cypress 测试无意中执行了 n 次

问题描述 投票:0回答:0

嗯,这就是代码应该做的。

  • 对于每个 collectionClass,我正在创建一个带有索引的新测试
  • 每次测试都会添加一个新集合
  • 添加新收藏后,手风琴被切换
  • 然后使用 test_collection_class 自定义命令将所有值输入到表单中
  • 然后最后手风琴被切换
  • 继续下一个测试

有点像那样。但这就是问题所在。如果索引是一个,CC_TEST_COLLECTION_CLASS_ITEM 被调用一次。但是随着索引的增加,这个函数被调用了 n 次。如果 index=10,则调用 10 次,依此类推。由于某种原因,函数将相同的内容填充了 10 次。知道为什么会这样吗?

 function CC_TEST_COLLECTION_CLASS_ITEMS(values: AObjectField[],collectionIndex: number) 

{

  cy.get("[dynamic-cy-id]").each((element, index, $list) => {
    const parentClassName = element.parent().attr("class");
    const fieldName = element.attr("dynamic-cy-id") ?? "";

if (!fieldName.includes("toggle")) { 让价值= values.filter((item) => item.Field === fieldName)[0].Value ?? “”;

  if (parentClassName?.includes("ng-select-auto-save")) {
    cy.CC_SET_NG_SELECT_VALUE_BY_INDEX(
      `${collectionIndex}_${fieldName}`,
      value
    );
  } else if (parentClassName?.includes("input-group")) {
    cy.CC_SET_INPUT_VALUE_BY_INDEX(
      `${collectionIndex}_${fieldName}`,
      value
    );
  } else if (parentClassName?.includes("date-field")) {
    cy.CC_SET_DATE_INPUT_VALUE_BY_INDEX(
      `${collectionIndex}_${fieldName}`,
      value
    );
  }
}

}); }

  collectionClasses.forEach((collectionData) => {
    it(`CollectionClass #${collectionData.Index}`, () => {
      cy.CC_GET_byTestID("add-collection-btn").click().wait(1000).then(() => {
        cy.CC_GET_ACCORDION_TOGGLE_BUTTON(collectionData.Index).click().wait(1000).then(() => {
          const collectionClassValues = getCollectionClassValue(MOCK_DATA_COLLECTIONS_FL, collectionData.Index);
          cy.CC_TEST_COLLECTION_CLASS_ITEMS(collectionClassValues, collectionData.Index).then(() => cy.CC_GET_ACCORDION_TOGGLE_BUTTON(collectionData.Index).click().wait(1000))
        })
      })
    })
  })
angular testing cypress e2e-testing e2e
© www.soinside.com 2019 - 2024. All rights reserved.