【问题标题】:Unable to identify whether my test case pass or fail无法确定我的测试用例是通过还是失败
【发布时间】:2015-11-30 10:43:49
【问题描述】:

我需要在 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 方法不会返回任何内容;并且 alert 内置函数不返回任何内容。所以你的测试真的没有意义。另外,您是否有在实际浏览器中运行测试的页面?还是你用幻影?
  • 不,我不使用幻像,我有一个名为 login.html 的页面,其中包括我所有的 JavaScript 文件,如 Mocha.js、chai.js、jquery.js 以及我的测试.js、Application.js 文件。

标签: javascript html


【解决方案1】:

两件事:

  1. doClick()

innerHTML 值是实际按钮上显示的值,而不是单击按钮时运行的值。您无需执行或设置任何其他操作即可使用该功能;这就是您的 addEventListener 调用正在做的事情。如果要显示警报,doclick 需要做的就是:

function doclick() {
    alert("Going to test Events in JavaScript");
}
  1. 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 代码相关问题的起点!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2019-05-29
    • 2021-02-02
    • 1970-01-01
    相关资源
    最近更新 更多