4

Backbone.Collection の仕様を書いています。
ジャスミンを使用した単体テスト JavaScript で次のステートメントを確認したいと思います。

should the models be ordered by starting with the most recent.

チェックするモデルのキー値はid(整数) です。

たとえば、コレクションは次のように並べ替えられます。

[
{id: 5, ….}, // the most recent
{id: 2, ...},
{id: 1, ...}
]

私の質問は次のとおりです
。1)この種のチェックを行うためのジャスミンの方法はありますか?
2)そうでない場合、javascriptで作成する最良の方法は何ですか? アンダースコアのようなライブラリを使用している可能性があります。

4

2 に答える 2

2

for ループを実行できますが、必要なものをチェックする組み込みがあるかどうかはわかりません。

    var max = arr[0].id;
    var sorted = true;

    for(var i = 1; i < arr.length; i++) {
       if(max > arr[i].id) {
           sorted = false; break;
       }
    }

    alert(sorted);
于 2012-06-04T09:14:56.857 に答える
0

おそらく、comparatorコレクションをソートしたままにする a をコレクションに設定していると思います。

テストでは、3 つの項目を順不同で作成します。たとえば、次のようにします。

collection = new MyCollection();
collection.add({id: 1, bar: 'foo1'});
collection.add({id: 5, bar: 'foo5'});
collection.add({id: 3, bar: 'foo3'});

次に、コンパレータが機能することを確認すると、次のように簡単になります。

expect(_.pluck(collection.models, 'id')).toEqual([5, 3, 1]);
于 2012-06-06T16:55:59.017 に答える