4

HTML、ドキュメント、またはユーザー インターフェイスとは関係のないコードをテストするために、コマンド ラインから実行できる JS コードでいくつかの簡単なテストを作成しようとしています。これを行うには、あるファイルを別のファイルに含めて、テスト対象のコードをテスト スクリプトに取り込む必要があります。私が見つけたのは、仕事をするのに HTML または DOM が関係していたことです。たとえば、document.write( ) などのようなものです。これを行う簡単な方法はありますか?include( "code2test.js" ); のようなものをイメージしています。これを解決するための助けをいただければ幸いです。JQuery は役に立ちますか、それとも HTML/ブラウザーのコンテキストで使用する必要がありますか?

前もって感謝します.j

4

4 に答える 4

1

必要なのはRequire.jsのようです。スクリプトタグではなくjavascriptを使用してWebページにjavascriptを含めることができるように設計されています。たとえば、次の代わりに:

<script scr="foo.js"></script>
<script>
    use_foo_here();
</script>

Require.jsを使用すると、次のように記述できます。

require(["foo.js"],function(foo){
    use_foo_here();
})

Require.jsの優れた点は、Node.jsでも使用できることです。したがって、コマンドライン呼び出しの場合、Nodeを使用してスクリプトを実行でき、require()ステートメントはWebページの場合と同じように機能します。

于 2013-03-19T02:21:53.560 に答える
1

次の 2 つのスクリプト タグが必要なようです。

<script type="text/javascript" src="code2test.js"></script>
<script type="text/javascript" src="testscript.js"></script>

うまくいかない場合は、順序を逆にしてみてください。

于 2013-03-19T02:15:13.547 に答える
0

私たちはChutzpahをテスト ランナーとして使用しており、非常に満足しています。Jasmineを使用してテストを作成します。Jasmine は DOM を必要としません。

テスト ファイルの先頭に、テスト対象の JavaScript ファイルへの参照が次のように追加されます。

/// <reference path="dependantModule.js" />
/// <reference path="code2test.js" />

そして、テストコードは次のとおりです。

describe("code2test test suite", function () {

    it("should do something"", function () {
        var result;

        // Assuming code2test.js exposes a global called 'code2test'
        result = code2test.doSomething();
        expect(result).toEqual("the expected result");
    });
});

Chutzpah は PhantomJS ヘッドレス ブラウザを使用しています。したがって、必要に応じて DOM と対話するテストを作成できます。

継続的インテグレーションのためにコマンド ラインから Chutzpah を介してテストを実行しますが、Chutzpah Visual Studio 拡張機能を使用して Visual Studio 2010 内でもテストを実行します。VS2012 での Chutzpah の統合はさらに簡単だと思いますが、自分で試したことはありません。

テストは「実際の」ブラウザー内で実行することもできるため、デバッグに最適です。テスト コードをデバッグするために私が選んだブラウザーは Chrome です。開発者ツールは優れています。

于 2013-03-19T08:42:18.303 に答える
0

ブラウザーを使用せずに JavaScript エンジン (Webkit など) にアクセスするだけの場合は、nodeJSPhantomJSなどを使用できます。

于 2013-03-19T02:19:47.273 に答える