当前位置: 首页 > 知识库问答 >
问题:

为什么我在使用QUnit编写测试时会使用期望()?

童铭晨
2023-03-14

我最近开始使用QUnit来单元测试我的JavaScript,我有点困惑的功能在那里留档:期待()

根据文档,expect()设计用于:

[s]指定在测试中预期运行多少个断言。

这是他们给出的例子:

test( "a test", function() {
  expect( 2 );

  function calc( x, operation ) {
    return operation( x );
  }

  var result = calc( 2, function( x ) {
    ok( true, "calc() calls operation function" );
    return x * x;
  });

  equal( result, 4, "2 square equals 4" );
});

我在这里唯一看到的是维护噩梦。每次向测试添加断言时,都必须更新该数字,否则测试将失败。这种功能是否有实际应用?

共有2个答案

濮阳研
2023-03-14

它可以作为一种安全措施,确保您没有以某种方式编写无法运行的测试。如果你养成了编写预期数量的测试的习惯,如果你曾经以某种方式编写了一个测试套件,其中有一个测试由于某种原因对QUnit隐藏了,QUnit会在你之前找到它。

燕照
2023-03-14

我在这里唯一看到的是维护噩梦...这种功能是否有实际应用?

好吧,我认为期望的使用方式是分组有意义的任务。它对于测试事件或回调非常有用,例如:

test('trigger an event', function() {
  expect(1);

  $('div')
    .on('click', function() { ok(1) });
    .trigger('click');
});

如果您将有意义的任务分组在小测试中,只需要2或3个断言,这不会成为一个噩梦。

 类似资料:
  • 我们正在使用jOOQ与包含以下表的MySQL数据库进行对话: 我们已经启用了对JSR-310类型的支持,所以我们在Java/Kotlin端使用来映射它。 注意选择如何在上进行筛选,但是结果表显示。 这是一个测试,在我的本地机器(UTC+10)上运行,对本地运行的标准Docker映像进行测试。 尽管使用了,但我认为我们遇到了一些时区问题,但是我不能通过直接讨论JDBC来重现这个问题。我尝试在其他测试

  • 我有一个带有索引的ISODate()类型字段的数据库(我也用字符串字段尝试了这个实验——结果相同)。我使用的是MongoDB(4. x)的开源版本,当我进行查询/排序以查找最大_finish_time时,除非我指定提示,否则不会使用索引。 我的问题是: 这解释为: 扫描整个收藏。当我为可用索引指定提示时,如: 我得到了查询计划: 它使用索引。我不想在查询中添加hint(),我对它为什么拒绝使用索引

  • 我必须为我的一个功能列表页面编写集成测试用例,该功能索引方法具有如下代码 现在,当我试图为此编写一个测试用例时,它抛出了一个错误 现在我要做的是在下面的beforeach语句中编写登录过程,然后为features列表页面编写测试用例 您能告诉我如何获得当前用户吗? 仅供参考,我曾使用Desive gem,并与Rspec一起处理集成测试用例 这是我的规格文件,这是我的食物类别规格.rb

  • 我有一个使用JSONObject的函数,我需要测试它。下面是我的代码: 这是我想测试的代码: 谢谢

  • 问题内容: 我正在GoLang中为一个简单的REST服务编写测试。但是,因为我使用julienschmidt / httprouter 作为路由库。我正在努力编写测试。 main.go 控制器 我的问题是:当GetBook既不是HttpHandler也不是HttpHandle时如何测试呢? 如果我使用传统的处理程序,这样的测试将很容易 问题是,httprouter不是处理程序,也不是handlef

  • A/B测试用于根据数据导出的结果做出业务决策,而不是仅仅进行预测。 它允许您创建您的网站或应用程序的变体,然后帮助您确认或放弃您做出更改的决定。 通过此测试,可以优化您的网站或应用,从而提高转化率。 更高的转化率意味着从现有用户中获得更多价值,而不必花费更多流量获取。 A/B测试还可以帮助您改变业务中的其他因素,如改变工作文化等。它可以帮助您使用数学数据和统计数据来确定产品变化的方向。 无论您是设