我正在尝试学习如何使用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();
});
});
答案 0 :(得分:0)
这些是2个单独的文件吗?我知道这听起来像个愚蠢的问题,但是当我开始使用Jasmine时,这是一个错误。您需要将“源”和“规范”文件分开。
请记住首先在spec跑步者页面上使用“Butthead”类声明引用您的Code文件。您还需要关闭脚本标记引用,而不仅仅是a。我之前犯过这个错误。