4

私はこのようなモデルを持っています:

//myModel.js
define([], function () {
    var MyModel = Backbone.Model.extend({
        // my code
    });
    return MyModel
});

次に、このモデルの仕様を記述したい場合、requireJsを使用してモデルをロードするにはどうすればよいですか?

私は次のことを試しました:

//myModel.spec.js
define([
    "js/models/myModel",
], function (MyModel) {
    describe("My model", function()
    {
        beforeEach(function () 
        {
            this.myModel = new MyModel({
                name: "my title"
            });
        });
    });
});

これは正しい方法ですか?

4

1 に答える 1

2

はい、これは正しいです。テストに RequireJS を使用することの優れた点は、define ブロックですべてのテストの依存関係を宣言する必要があることです。定義上、単体テストは 1 つのことだけをテストする必要がありますしたがって、1 つのテストに複数の依存関係がある場合、実際の「単体テスト」をまったく行っていないというコードの匂いがします。

理想的には、唯一の依存関係はテスト中のファイルであるべきです。そのファイル自体にサーバー側サービスや複雑な非同期 API などの依存関係がある場合は、スタブとモックを使用してそれらをシミュレートできます。優れたスタブ/モッキング ライブラリについては、SinonJS を確認してください。

于 2012-05-25T21:40:15.837 に答える