1

同じ共通ユーティリティ スクリプトを共有する必要がある複数のテストがあります。このファイルはテストにのみ関連するため、ソース フォルダー構造には配置したくありません。

したがって、私のソースフォルダーは次のとおりです。

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

そして私のテストソース:

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

src/test/js には、他のジャスミン テストでロードする必要がある testUtil.js ファイルがあります。jasmine テスト内からそのようなファイルにアクセスすることは可能ですか?

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

2 に答える 2

0

これは私がそれを行うことができた方法です:

  1. specs フォルダに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 ディレクティブが必要です。

    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 に答える