1

我有多个测试需要共享相同的通用实用程序脚本。我不想将此文件放在源文件夹结构中,因为它仅与测试相关。

所以我的源文件夹是:

<jsSrcDir>${project.basedir}/src/main/js</jsSrcDir>

和我的测试源:

<jsTestSrcDir>src/test/js</jsTestSrcDir>

在 src/test/js 我有一个 testUtil.js 文件,我需要在其他 jasmine 测试中加载该文件。是否可以从 jasmine 测试中访问此类文件?

describe('Load Util Module', function() {
    it('check util is loaded', function() {
        //load testUtil.js
    });
});
4

2 回答 2

0

这就是我设法做到的方式:

  1. 我将require.js添加到我的规范文件夹

    src/test/js/require.js
    
  2. 在 jasmine-maven-plugin 配置中,我添加了 REQUIRE_JS 规范运行器模板:

    <specRunnerTemplate>REQUIRE_JS</specRunnerTemplate>
    
  3. 数据文件位于:

    src/test/js/testUtil.js
    

    具有以下内容:

    define([], function() {
        return {
            "data" : [1, 2, 3]
        };
    });
    
  4. 要注入此数据对象的测试需要一个定义指令:

    define(['../../../spec/testUtil'], function(testUtil) {
        var _testUtil = testUtil;
        describe('Testing data loaded', function () {
            it('loads test data', function () {            
                 expect(testUtil.data.length).toBe(3);
             });
        });
    });
    
于 2014-07-10T04:01:48.337 回答
0

如果您还没有在项目中使用 require.js,那么您的解决方案就太过分了。

如果你想确保你的库在你的规范之前加载,你只需要使用 preloadSources 配置参数。

<preloadSources>
  <source>src/test/js/testUtil.js</source>
<preloadSources>
于 2014-07-10T05:08:28.650 回答