使用Jasmine进行单元测试,期望()。toBeVisible()

时间:2014-11-30 00:54:49

标签: javascript jquery unit-testing jasmine jasmine-jquery

我需要在执行click事件后检测CSS显示值。我确定这是用户错误,但我无法让Jasmine.js报告点击后元素可见性是否已更改。

以下是codepen链接:http://codepen.io/nicholasabrams/pen/dPYoJr

这是代码本身:(这显然不是它被使用的实际情况,但它是一个非常简化的版本,它重现了我目前的问题)

$('#button1').on('click', function(){

  $(this).append('<button id="#button2">!!!!!</button>');

});

这是测试本身:

describe("button#1 click test", function(){

   beforeEach(function(){
     $('#button1').click();
   });

   it("Should inject a new button with #button2 as the id", function(){
      expect($('#button2')).toBeVisible();
   });

});

1 个答案:

答案 0 :(得分:0)

首先 - 在你的笔中,你应该为jasmine-jquery添加外部脚本。接下来,按钮中的按钮,根据W3C Phrasing content, but there must be no interactive content descendant. Jasmine是非法的,很好,试着追加到父母身上:

$('#button1').on('click', function(){
    $(this).parent().append('<button id="#button2">!!!!!</button>');
});

工作笔http://codepen.io/anon/pen/zxvGja?editors=101