javascript - 测试未导出的 TypeScript 函数

标签 javascript typescript mocha.js chai

我使用 Mocha/Chai 测试 JavaScript 前端代码,现在我们切换到 TypeScript。我有几个要测试的功能。但它们不应该是可导出的。我可以在不向它们添加 export 的情况下访问此函数并对其进行测试吗?

最佳答案

无法访问未导出的模块函数。

module MyModule {
    function privateFunction() {
        alert("privateFunction");
    }
}
MyModule.privateFunction(); // Generates a compiler error

但是,撇开私有(private)​​方法测试的有效性问题不谈,这里是您可以做的。

将您的函数分组到一个实用程序类中,然后利用可以通过方括号表示法访问私有(private)类成员这一事实。

module MyModule {
    export class UtilityClass {
        private privateFunction() {
            alert("privateFunction");
        }   
    }
}
var utility = new MyModule.UtilityClass();
//utility.privateFunction(); Generates a compiler error
utility["privateFunction"](); // Alerts "privateFunction"

关于javascript - 测试未导出的 TypeScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31922977/

相关文章:

javascript - 禁用输入字段上的 jQuery 单击事件

angular - 使用 Angular 2+ 在按钮单击上添加 DOM 元素

node.js - 找不到模块 './lib/should'

javascript - 为什么在挂载过程中组件中未定义这个全局本地 Vue 属性?

javascript - 如何对异步映射函数执行递归

Javascript - 正则表达式 - 字边界 (\b) 问题

Javascript 保持模态隐藏

node.js - 使用 cxsd 将 .xsd 转换为 TypeScript,cxsd 无法识别

angular - 静态服务器端渲染或动态服务器端渲染

javascript - 如何在 React Router 4 下对组件进行单元测试