2

我是茉莉花测试的新手。我只知道如何安装和简单的 cmd 等toEqualtoBe但我不知道如何在 jasmine 中为这个 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-jquery - jasmine-jquery 插件,它具有固定例程和一堆 jquery DOM 匹配器,例如toBeVisibletoBeHidden等等。

接下来你应该为你创造一个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() {
  ...
});

您也可以在 github 上查看我的 jquery 插件,它使用 Jasmine 和夹具进行了测试: https ://github.com/belogub/searchin

于 2012-11-07T13:37:17.773 回答