如何一个接一个地多次运行柏树测试?



我正在使用 react 创建一个大富翁(用骰子玩的棋盘游戏(。我已经为游戏制作了滚动系统。现在我想测试一下。

我的游戏中有两个按钮

  • 滚动按钮
    • 其最初启用
    • 当用户单击它时,骰子被滚动。玩家动作片段
    • 现在有两种情况
      • 如果双打被掷出,则玩家可以再掷一轮,并且此按钮保持启用状态
      • 如果未滚动双打,则禁用,另一个将启用。
  • 结束转动按钮:
    • 最初是禁用的。
    • 如果骰子被滚动并且双打没有滚动,那么这个将启用。
    • 当我们单击此转弯时会发生变化,对于新转弯,这将被禁用,滚动按钮再次启用。

现在我正在使用柏树来测试这一点。我已经编写了测试,它工作正常,但只有 1 次。当我使用循环多次运行测试时,它失败了

describe("Rolling System", function () {
//The required test
it("disables button correctly", function () {
//Visits the page
cy.visit("localhost:3000").then(() => {
//A variable which tell if doubles were rolled at last roll or not 
let isRollDisabled = false;
for (let i = 0; i < 10; i++) {
//If roll is over then end the turn
if (isRollDisabled) {
cy.get(".btn-end-turn").click();
}
//If roll button is enabled then click it.
else {
console.log(isRollDisabled);
//Get and click button
cy.get(".btn-roll")
.click()
.then((x) => {
//Get the dice elements
cy.get(".dice").then((dices) => {
//Get the rolls of both die
let roll1 = dices[0].children.length;
let roll2 = dices[1].children.length;
//If not doubles
if (roll1 !== roll2) {
cy.get(".btn-roll").should("be.disabled");
console.log("roll disabled changed");
isRollDisabled = true;
} 
//If doubles are rolled
else {
cy.get(".btn-roll").should("not.be.disabled");
isRollDisabled = false;
}
});
});
}
}
});
});
});

请注意上面代码中的两个日志console.log(isRollDisabled);console.log("roll disabled changed");

在日志中,我看到false被记录了10次,然后记录了"roll disabled change"

我想我已经编写了代码,使一个测试一个接一个地运行,但我无法修复它。

从测试主体内部移除循环,改用 cypress-repeat(从命令行(。

相关内容

  • 没有找到相关文章

最新更新