javascript - Mocha 条件测试 - If else 总是通过
问题描述
我正在尝试对我的一个元素进行条件测试,但是 mocha 只是完全跳过了“if else”语句,只显示了“it(”“)”的输出
这是我的做法:
it('if test case', async function () {
var cardProcZero = await driver.hasElementByAccessibilityId("card_proc_0"); // looks up the element
let visivel = expect(cardProcZero).to.be.ok; // expects it to exist
let naoVisivel = expect(cardProcZero).to.not.be.ok; // expects it not to exist
if (cardProcZero == naoVisivel) { // if it's not visible, it creates the element
let adicionarProc = await driver.waitForElementByAccessibilityId("button_addProcedimento"); // adds the element
await adicionarProc.click();
return false;
} else if (cardProcZero == visivel) { // if it is visible, it clicks on it
await cardProcZero.click(); // clicks on existing element
return true;
}
});
在终端中,mocha 在我最后一个测试用例之后输出:
✓ if test case (527ms)
它甚至没有尝试做其他现有的“它”。它只是跳过它。
我到底做错了什么?
解决方案
尝试在没有 chai.js 期望的情况下这样做,它可以工作。
如果有人有同样的问题,我是这样做的:
it('if test case', async function () {
var cardProcZeroVerify = await driver.hasElementByAccessibilityId("card_proc_0");
if (cardProcZeroVerify === false || undefined || null) {
console.warn('Adicionando novo procedimento');
let adicionarProc = await driver.waitForElementByAccessibilityId("button_addProcedimento");
await adicionarProc.click();
}
else {
console.warn('Abrindo um procedimento já existente');
let cardProcZero = await driver.waitForElementByAccessibilityId("card_proc_0");
await cardProcZero.click();
}
});
推荐阅读
- c# - 按周分组 EF Core 2.1
- reactjs - SRA - 单页 React 应用程序 - 当托管到 GitHub 时,不加载存储“切换”路由器代码的组件
- java - 如何使用 Thymeleaf 设计 HTML 电子邮件正文
- excel - Excel VBA - 运行时错误“53”:找不到文件。但是找到了文件
- python - 如何对一维 numpy 数组进行下采样?
- angular - Angular6在几个scss组件中导入引导文件
- javascript - 选择具有多个 ID 的特定输入以解析为表单
- python - Python3 对可能即将到来的 DST 更改是否安全?
- ponyorm - 如果我通过 sqlite 文件,小马 orm 可以推断数据库结构吗?
- python - 使用字典键引用对象/模型字段