我需要在 JavaScript 中测试“事件”,例如按钮单击、使用“Mocha”单击链接等。
我有 3 个文件 1) Login.html,2) Application.js,3) test.js。
1)Application.js文件包含以下代码:
function doclick() {
document.getElementById("myBtn").innerHTML = alert("Going to test Events in JavaScript");
}
2)test.js包含以下代码:
var expect = chai.expect;
describe('Testing', function() {
it('Testing the Events in JavaScript', function() {
var v1 = doclick();
expect(v1).to.equal("Going to test Events in JavaScript");
});
3)login.html包含以下代码:
document.getElementById("myBtn").addEventListener("click", doclick);
我需要测试当单击按钮时,它应该显示带有此消息的警报“Going to test Events in JavaScript”,实际上它确实如此。但浏览器不显示我的测试用例是通过还是失败。
我认为我在“test.js”文件中犯了错误,我做错了什么?
两件事情:
- doClick()
显示的内容是innerHTML 值在实际按钮上,而不是单击按钮时运行的内容。您无需执行任何操作或设置任何其他内容即可获得该功能;这就是您的 addEventListener 调用所做的事情。如果你想显示一个警告,所有 doclick 需要做的是:
function doclick() {
alert("Going to test Events in JavaScript");
}
- test.js
现在,您似乎希望 doclick 做的不仅仅是发送警报,还返回一个要在 test.js 中使用的值。这需要是那个字符串吗?鉴于 doclick 只做一件事,不是真的。如果您只想测试它是否运行,请让 doclick 返回 true 并将 v1 初始设置为 false。然后将 v1 设置为 true 值而不是那个长字符串。
function doclick() {
alert("Going to test Events in JavaScript");
return true; //I ran, so return true.
}
var expect = chai.expect;
describe('Testing', function() {
it('Testing the Events in JavaScript', function() {
var v1 = false;
v1 = doclick();
expect(v1).to.equal(true); //or whatever the syntax here is, I haven't used expect before
});
});
我假设您的其余语法是正确的 - “it()”是一个有效的函数,并且您的 test.js 文件最终运行没有错误。如果对 Mocha 有更多了解的人想要回答,我可能会接受他们的知识,但鉴于到目前为止没有其他人回答过,这至少是解决一些 JS 代码相关问题的起点!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)