javascript - JavaScript 单元测试的工作原理

标签 javascript jquery unit-testing jasmine jestjs

考虑以下我的 JavaScript 函数片段 -

firstJs.prototype.SetSum=function(a,b){
    var htmlToBind="<div>"+(a+b)+"</div>";
    $('#setSum').html(htmlToBind);
};

这里setSum是DOM中的一个elementID。我想了解这个函数如何通过Jasmine或Jest完成的单元测试,因为当单元测试运行时它不会找到' DOM 中的 setSum' 因此测试用例失败。我是测试用例中的菜鸟

最佳答案

依赖注入(inject)等技术将在这方面为您提供帮助。

不要假设与 $('#setSum') 对应的元素可供函数使用,而是将该元素作为参数传入。

例如,将您的函数转换为:

function (a, b, element) {
    var htmlToBind = "<div>" + (a + b) + "</div>";
    element.innerHTML(htmlToBind);
}

现在,您的测试函数可以将任何 HTML 元素传递给第三个参数。

关于javascript - JavaScript 单元测试的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48780313/

相关文章:

Javascript - 替换字符串中的任何字符实例

javascript - AngularJS : what's the difference between these two lines?

javascript - 在悬停和单击时创建下拉导航

javascript - 单击添加行 td 并自动完成

python - 寻找 assertURLEquals

unit-testing - SOLID 和单元测试。使用语言提供的方法/类

python - 如何测试调用socket.send时是否引发异常

javascript - 如何在jquery中获取除输入类型="hidden"之外的td innerhtml值

javascript - 永远不会执行子状态 Controller

jquery - 防止在分页的 jquery 数据表中选择多个单选按钮