这个 JavaScript 可以使用 Jasmine 进行单元测试吗?

Is this JavaScript unit testable using Jasmine?

此 javascript 代码是否可使用 Jasmine 进行单元测试。如果不是,我们如何使其可单元测试?

问题基本上是 helloworld 函数在测试规范 js 文件中不可访问,因为它不在全局范围内。我们如何重构代码,使其可以在测试规范文件中访问?

(function($){
    function helloWorld() {
          return "Hello world!";
        }
})(jQuery);

不,您不能测试不可见的函数。

您应该通过定义一些全局常量在您的测试环境中有条件地导出它:

(function ($) {
  var exports = window.TESTING ? window : {}

  exports.helloWorld = function () {
    // ...
  };

})(jQuery);