首页 > 解决方案 > 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)

它甚至没有尝试做其他现有的“它”。它只是跳过它。

我到底做错了什么?

标签: javascriptmocha.jsappiumchaiappium-ios

解决方案


尝试在没有 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();
    }
});

推荐阅读