茉莉花测试用例



我写了一个javascript方法,可以在单击图像时更改建议框的值。

function startDestinationF(a) {
var startDestination = document.getElementById('startDestination');
startDestination.selectedIndex = (a);}

现在我必须编写一个茉莉花测试用例来检查这种方法是否真的有效,但我真的不明白。

我试过:

describe("Change onclick the value of the drop down menu", function() {
var startDestination;
beforeEach(function() {
    startDestination = document.getElementById('startDestination'); 
  });
it("should change the value", function() {
    expect(startDestinationF(3)).toBe(startDestination.selectedIndex==3);
});});

但它说:"无法读取 null 的属性'selectedIndex'"。我是该领域的新手,我真的需要一些帮助......

谢谢

DOM 中必须有 id startDestination 的元素。

实现此目的的两种方法:

  • 将元素硬编码到 SpecRunner 的主体元素中.html
  • 使用 JavaScript 创建元素并将其附加到 DOM,然后再运行该测试。

老问题,但以防有人会找到它

it("should work", myTestFunction.bind(this, 'param1','param4'));
it("should work", myTestFunction.bind(this, 'param2','param3'));
function myTestFunction(param1, expected){
   expect(param1).toBe(expected);
}

我使用 bind 使用必要的参数复制我的函数

与Jasmine一样,您需要在DOM中创建具有ID的元素至关重要。有很多方法可以做到这一点,我的做法是使用茉莉花固定装置

affix('#startDestination')  --> This will create this in DOM <div id="startDestination">

如果您需要特定类型的输入,您也可以这样做。

这是你可以做到的一种方式,这通常是我这样做的方式。我冒昧地使用jQuery来做这个:)

这是一个工作 plunkr: http://plnkr.co/edit/93dyzvxa82sFWWFZ6NTi?p=preview

describe('test suite', function(){
   // this here represents your global function
   // I've added this here for the purpose of this demo
   function setValue(a) {
       $('#name').val(a);
    }       
   beforeEach(function(){
      this.element = $('<input id="name" type="text" />');
      this.element.appendTo('body');
   });
   // clean up
   afterEach(function(){
      this.element.remove(); 
   });
   it('should change the value', function(){
      //when
      setValue('Alex Baur');
     // then
     expect(this.element.val()).to.Equal('Alex Baur');
   });
});

相关内容

  • 没有找到相关文章

最新更新