7

angular js tutorialを見ると、ジャスミン テストでリピーター (関数?) がどこから来ているのかわかりません。これはジャスミンですか、それとも角度のある構造ですか?

ページには要素に ng-repeat 属性がありますが、<li>それがテストで「リピーター」への参照にどのように変換されるかわかりません

  it('should be possible to control phone order via the drop down select box',
    function() {
    //let's narrow the dataset to make the test assertions shorter
    input('query').enter('tablet');

    //where does  'repeater' below come from?
    expect(repeater('.phones li', 'Phone List').column('phone.name')).
    toEqual(["Motorola XOOM\u2122 with Wi-Fi",
    "MOTOROLA XOOM\u2122"]);

    select('orderProp').option('Alphabetical');


    expect(repeater('.phones li', 'Phone List').column('phone.name')).
    toEqual(["MOTOROLA XOOM\u2122",
    "Motorola XOOM\u2122 with Wi-Fi"]);
    });
4

1 に答える 1

7

これrepeaterは Jasmine 構造ではなく、AngularJS e2e シナリオ テスターの概念です。

この関数は、AngularJS e2e シナリオ ランナーによって使用される DSL で定義されており、その定義は次 のrepeater場所で確認できます: https://github.com/angular/angular.js/blob/master/src/ngScenario/dsl.js#L249対応するドキュメントは次の場所にあります: http://docs.angularjs.org/guide/dev_guide.e2e-testing

AngularJS がエンド ツー エンド テストに Jasmine 構文を使用している場合でも、これらの e2e テストはJasmine テストではなく、非常によく似た構文を使用しているだけであることに注意してください。AngularJSngScenarioランナーの目的は、ブラウザーでエンドツーエンドのテストを実行することであり、ブラウザー環境 (DOM、場所など) に密着したマッチャーを使用します。Jasmine は単体テストに重点を置いており、JavaScript オブジェクトのマッチャーを備えています。

言及されているのは、jQuery セレクターを指定して DOM オブジェクトをカウントする方法にすぎず、ディレクティブrepeaterによって生成された DOM 要素をカウントするために通常使用されるのは事実です。ngRepeat

于 2012-11-03T20:35:27.753 に答える