2

私はジャスミンテストで非常に新しいです。toEqualなどのような単純なcmdをインストールする方法しか知りませんがtoBe、ジャスミンでこのjqueryのテストコードを書く方法はわかりません。

if ($('.products').length > 0) {
  $('a[data-toggle="pill"]').on('shown', function (e) {
    var elem = $(e.target).attr('href');
    elem = elem.replace('#', '');
    var obj = $('.products').siblings('.hero');
    $('.prod-title,.prod-subtitle').removeClass('active');
    $('.' + elem, obj).addClass('active');
  });
}

このプログラムに関するテスト コードの書き方を教えてください。ご回答ありがとうございます。

4

1 に答える 1

1

まず最初に、テストには dom の相互作用が含まれるため、https://github.com/velesin/jasmine-jquerytoBeVisible - jasmine-jquery プラグインを使用する必要があります。これには、フィクスチャ ルーチンと、などの jquery DOM マッチャーが多数含まれtoBeHiddenています。

次に、次の条件を作成する必要がありifますtrue

describe("We have at least one product", function() {

  beforeEach(function() {
    loadFixtures('several-products-fixture.html');        
  });

  it("should do some stuff in this example", function() {
    var $target = $('a[data-toggle="pill"]');
    $target.trigger('shown');

    var elem = $target.attr('href').replace('#', '');
    var obj = $('.products').siblings('.hero');

    expect($('.prod-title,.prod-subtitle')).not.toHaveClass('active');
    expect($('.' + elem, obj)).toHaveClass('active');
  });
});

// Next context
describe("We have not any product", function() {
  ...
});

また、Jasmine とフィクスチャでテストされている github で私の jquery プラグインを見ることができます: https://github.com/belogub/searchin

于 2012-11-07T13:37:17.773 に答える