javascript - 测试时,我是否需要向我的函数添加更多 Return 语句?

标签 javascript mocha.js expect.js

我想开始使用测试框架,mocha + Expect 对我来说似乎不错。

假设我有这个功能,

/*
 * Hides or shows loading .gif
 * show : boolean
 */
function loadingMsg(show) {
    var $loader = $("#loader");
    if(show){
        $loader.show();
    }
    else{
        $loader.hide();
    }
}

为了使其可测试,我是否需要添加如下所示的 Return 语句?

/*
 * Hides or shows loading .gif
 * show : boolean
 */
function loadingMsg(show) {
    var $loader = $("#loader");
    if($loader){
        if(show){
            $loader.show();
            return "loader shown";
        }
        else{
            $loader.hide();
            return "loader shown";
        }
    }
    else {
        return "$loader undefined";
    }
}

或者我应该测试 dom 元素“loader”?

最佳答案

不,你不知道。

而是检查 DOM 中的加载器元素显示属性。

评论后更新:

没有使用太多 mocha,但是在测试 UI 时,它几乎在每个框架或库中都有类似的风格。使用 jQuery 或任何可用的选择器库在 DOM 中查找元素,并检查它们的内容是否符合要求。在您的情况下,您将检查加载器元素是否显示 block 或不显示。

类似的东西 当加载程序显示时

expect($('#loader').css('display')).toBe('block');

当加载程序隐藏时

expect($('#loader').css('display')).toBe('none');

关于javascript - 测试时,我是否需要向我的函数添加更多 Return 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31648132/

相关文章:

javascript - 从 neo4j rest API 创建 json 的正确方法

javascript - 通过单击 Materializecss/Material Design 中的图标可扩展搜索栏

javascript - 如何单独切换多个 div?

javascript - 在 Mocha 和 SuperTest 中设置基本身份验证

node.js - Mocha 测试失败,错误来自 "before all"钩子(Hook)

javascript - 当没有找到测试时,Mocha 会抛出一个错误。这能被压制吗?

node.js - Node.js 中的 AssertionError 定义在哪里?

javascript - Mocha 测试 : Uncaught TypeError: Cannot read property 'status' of null

javascript - babel-preset-env 不使用 webpack 转译箭头函数

javascript - Codeacademy 类(class)中的 Expect.js 验证问题