0

私は次のテストでgrunt、qunitの最新バージョンを使用しています:

  module('jQuery#FilteringTool', {

    setup: function() {
      this.elems = $('#qunit-fixture').children();
      $(this.elems).FilteringTool();
    }
  });

  asyncTest('load remote content', function(){
    var $this = this;
    window.setTimeout( function(){
      ok( $('#qunit-fixture .carouselItem').length > 0, "items are in place" );
      start();
    }, 50 );

  });

プラグインFilterinToolは正常に動作し、ブラウザでテストを実行することは正常に動作しますが、うなり声を上げてテストを実行すると失敗します。私はTDDの世界にかなり慣れていません、そして私は私が何を間違っているのか理解していませんか?

テストされたコードは次のとおりです。

(function( $, document ){
  var FilteringTool = {
    init: function( el, o ){
      var $this = this;
      $this.el = $( el );
      $this.ajaxUrl = $(el).data('ajax-url');
      $this.loadItems();
    } // init

    ,loadItems: function(params){
      var $this = this;
      $.getJSON( $this.ajaxUrl, $.proxy( $this.populateFields, $this ) );
    }//loadItems

    ,populateFields: function( data ){
      var $this = this;
      $('.filtered-items', $this.el).append( data.html );
    }//populateFields
  };

  $.fn.FilteringTool = function() {
    return this.each(function(){
      var obj = Object.create( FilteringTool );
      obj.init( this );
    });
  };
})( jQuery, document );

および備品:

  <div id="qunit-fixture">
    <div class="carouselWrapper loading" data-ajax-url="../../../fixtures/wines-carousel.ajax.php">
      <div class="carousel">
        <div class="filtered-items"></div>
      </div><!-- /.carousel -->
    </div><!-- /.carouselWrapper -->
  </div>
4

2 に答える 2

0

問題は、ローカルからphpファイルを読み込もうとしていたことでした。Medumb:)の完全なURLで修正されましたdata-ajax-url

于 2012-11-04T13:30:30.610 に答える
0

jQueryを使用して実行している同様の問題があります。ブラウザでテストページを表示すると、エラーは発生せず、jQueryは正常に読み込まれ、テストされたコードとテストで使用されます。

Grunt / PhantomJSを実行すると、jQueryが見つからないというエラーが表示されます。

于 2015-02-19T00:47:40.173 に答える