噶不加载功能

Karma not load a function

我想用 Karma 测试一个函数: 这是我的代码结构:

WebContent
|
|___js
|   |
|   |__sourceCode.js
|
|___test-resources
    |
    |__myTest.js

这是sourceCode.js的全部内容:

//ui5bp={};
ui5bp.sourceCode={
    doubleSum:function (a, b) {
        return (a + b) * 2;
    }
}

/*
function doubleSum(a, b) {
    return (a + b) * 2;
}*/

这是我的业力配置文件的摘录:

...
files: [
      'WebContent/js/sourceCode.js',
      //'WebContent/test-resources/myTest.js'
    ],
...

好的。现在我想要 运行 Karma,目前没有测试(在配置文件中我已经评论了测试)但是我有一个问题:

ui5bp is not defined

相反,如果我修改 sourceCode 直接编写函数,我没有问题!

我已经使用对象分组函数组织了我的代码,我想通过初始化测试来测试这些函数。

我找到了解决我的问题的方法:我希望测试函数已经写好而不修改它们。 问题是加载 sourceCode.js 文件而不通过我的框架 (openui5) 的初始化,我没有创建 ui5bp 对象...

解决方案是创建一个新文件 define.js,仅包含以下内容:

//define.js file
var ui5bp={};

并使用 karma 配置文件将其与其他文件一起导入:

...
files: [
      'WebContent/test-resources/define.js'
      'WebContent/js/sourceCode.js',
      //'WebContent/test-resources/myTest.js'
    ],
...

define.js 仅从 Karma 测试加载,当我需要 运行 我的应用程序时我不会使用它。