2012-11-03 12 views
7

Açısal js tutorial'u inceleyerek, yineleyicinin (işlevinin) bir yasemin testinde nereden geldiğini anlamıyorum. Bu yasemin ya da açısal bir yapı mı?Bu açısal öğreticide 'tekrarlayıcı' bir yasemin konsept midir?

sayfa bir <li> elemanda bir ng-repeat özelliği var - ama bu testte

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"]); 
    }); 

cevap

7

repeater bir Yasemin inşa edilmez içinde 'yineleyici' referans çevirir nasıl görmüyorum, AngularJS e2e senaryo test cihazı kavramıdır.

repeater fonksiyonu angularjs e2e senaryo koşucu tarafından kullanılan DSL tanımlanır ve tanımı burada görülebilir: https://github.com/angular/angular.js/blob/master/src/ngScenario/dsl.js#L249 ilgili belgeler bulunmaktadır: http://docs.angularjs.org/guide/dev_guide.e2e-testing

Belirtilmelidir

etse bile angularjs kullanımları Jasmine sözdizimi, uçtan uca test için, bu e2e testleri Jasmine testleri değil, sadece çok benzer bir sözdizimi kullanmak için vardır. AngularJS ngScenario runner'ın amacı bir tarayıcıda uçtan uca testleri yürütmek ve eşleştiricileri tarayıcı ortamına (DOM, konum vb.) Sıkı sıkıya bağlamaktır. Jasmine, birim testlerine daha fazla odaklanır ve JavaScript nesneleri için eşleştiricilere sahiptir. Belirtilen repeater, bir jQuery seçicisi verilen DOM nesnesini saymanın bir yoludur ve genellikle ngRepeat yönergesi tarafından üretilen DOM öğesini saymak için kullanılan doğrudur.