Jasmine单元测试无法使用简单的jquery点击

时间:2011-07-22 18:41:29

标签: jquery unit-testing testing jasmine

我正在尝试学习如何使用Jasmine进行单元测试。我编写了一个非常简单的示例,我试图测试在触发jquery click事件时调用方法。我似乎无法让这个工作。有人可以帮忙吗?非常感谢!!

我收到以下错误:

ReferenceError: Butthead is not defined in http://localhost:4243/spec/buttheadSpec.js (line 11)

spyOn could not find an object to spy upon for responseAlert()

这是代码

function Butthead(){
}

Butthead.prototype.responseAlert = function(){
   alert('You are a butthead');
}

$(document).ready(function(){

  var butthead = new Butthead();

  $('#myButton').click(function(){

      butthead.responseAlert();
  });
} 

这是我的单元测试

// Test Fixture
describe('When clicking myButton', function(){
  var butthead;

  // Set up
  beforeEach(function(){
     butthead = new Butthead(); 
  });


  // Test
  it('should say Hello', function(){

    spyOn(butthead, 'responseAlert');

    $('#myButton').click();

    expect(butthead.responseAlert).toHaveBeenCalled();
  });

});

1 个答案:

答案 0 :(得分:0)

这些是2个单独的文件吗?我知道这听起来像个愚蠢的问题,但是当我开始使用Jasmine时,这是一个错误。您需要将“源”和“规范”文件分开。

请记住首先在spec跑步者页面上使用“Butthead”类声明引用您的Code文件。您还需要关闭脚本标记引用,而不仅仅是a。我之前犯过这个错误。