什么"功能(断言)"做?

时间:2018-02-16 08:55:49

标签: qunit

我刚刚开始熟悉qunit,而且我正试图通过官方介绍。 有很多问题出现了,我无法在他们关于qunit或网络上其他地方的文档中找到任何问题。

"功能(断言)"做?对于几种断言方法,断言是qunit中的一个类别,但它本身并不是一种方法。所以如果我把'#34;断言"进入函数的参数,会发生什么?是否所有断言方法都与"断言"在测试中执行了吗?

https://qunitjs.com/intro/

这是使用此语法的一段代码

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>Refactored date examples</title>

  <link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.5.0.css">
  <script src="https://code.jquery.com/qunit/qunit-2.5.0.js"></script>
  <script src="prettydate.js"></script>

  <script>
  QUnit.test("prettydate basics", function( assert ) {
    var now = "2008/01/28 22:25:00";
    assert.equal(prettyDate(now, "2008/01/28 22:24:30"), "just now");
    assert.equal(prettyDate(now, "2008/01/28 22:23:30"), "1 minute ago");
    assert.equal(prettyDate(now, "2008/01/28 21:23:30"), "1 hour ago");
    assert.equal(prettyDate(now, "2008/01/27 22:23:30"), "Yesterday");
    assert.equal(prettyDate(now, "2008/01/26 22:23:30"), "2 days ago");
    assert.equal(prettyDate(now, "2007/01/26 22:23:30"), undefined);
  });
  </script>
</head>
<body>

<div id="qunit"></div>

</body>
</html>

1 个答案:

答案 0 :(得分:2)

完整的一行是:

QUnit.test("prettydate basics", function( assert ) {

这会调用函数QUnit.test,并且您正在向它传递回调函数。该回调需要一个参数。 QUnit.test会将对象作为回调的第一个参数传递,该参数将成为您的assert参数。该对象有各种断言方法。

它基本上是将断言对象注入到代码中,以便您可以使用它来进行断言。

粗略地QUnit.test实现如下:

QUnit.test = function (name, callback) {
    const assert = {
        equal: function () { ... },
        ...
    };

    callback(assert);
};