TOGOUTECH

javascript - 为什么在使用 QUnit 编写测试时我会使用 expect()?

我最近开始使用QUnit对我的JavaScript进行单元测试,我对文档中的一个特性感到有点困惑:expect()。根据文档,expect()旨在:[s]pecifyhowmanyassertionsareexpectedtorunwithinatest.这是他们给出的例子:test("atest",function(){expect(2);functioncalc(x,operation){returnoperation(x);}varresult=calc(2,function(x){ok(true,"calc()callsoperationfunction

javascript - 如何停止 qUnit 中的全局故障?

我是qunit的新手,正在尝试将它与现有环境集成。我在使用jQuery的页面上遇到的问题之一是:globalfailure(1,0,1)Rerun6msUncaughtReferenceError:$isnotdefined我认为这是因为我没有在qunitHTML中调用jquery库。是否可以设置一个参数来忽略这样的全局变量?我试图使HTML尽可能灵活,并且由于许多编辑器具有不同的依赖关系,我只希望qunit测试我专门给它测试的功能。 最佳答案 我遇到了同样的错误,但是没有使用jQuery。QUnit负责传播错误的部分是window

javascript - Qunit 测试在页面刷新时在通过和失败之间交替

我有两个测试相互造成副作用。我理解为什么我要替换在第二个测试中内部调用的jQuery内置函数。然而,我不明白的是为什么测试交替通过和失败。Thisquestionissimilar但是,我没有直接在qunit-fixturediv上做任何事情。这是我的测试test('alwayspassingtest',function(){//AlwayspassesvarpanelId='#PanelMyTab';varevent={};varui={tab:{name:'MyTab',},panel:panelId,};$('<div

javascript - 如何为 requirejs 和 qunit 设置 grunt 任务

我正在尝试使用requirejs和grunt-contrib-qunit设置QUnit环境。这是我的。咕噜文件:qunit:{all:{options:{urls:['http://localhost:8000/qunit/qunit-test-suite.html']}}},connect:{server:{options:{port:8000,base:'.'}}},qunit-test-suite.html:<!DOCTYPEhtml><html><head><metacharset="utf-8&

javascript - 为 es6 编译的测试代码

我正准备使用Qunit为Backbone应用程序编写一些测试,该应用程序是为ES6编写的,应用了babel.js,以便它可以在现代浏览器中运行。为了确保我正确设置了qunit并正确指定了所有路径,我首先测试了一个用ES5编写的Backbone模型,一切都按预期工作。但是,我随后将bundle.js(其中包含应用了babel.js的ES6代码的结果)包含到我的tests/index.html中,并编写了test("Codetransformedbybabel.jscontainedinbundle.jscanbetested",function(){expect(1);v

javascript - JS - 使用 IntersectionObserver 的测试代码

我的应用程序中有一个(写得相当糟糕的)javascript组件来处理无限滚动分页,我正在尝试重写它以使用IntersectionObserver,如here所述,但是我在测试它时遇到了问题。有没有办法在QUnit测试中驱动观察者的行为,即用我的测试中描述的一些条目触发观察者回调?我想到的一个可能的解决方案是在组件的原型(prototype)中公开回调函数并在我的测试中直接调用它,如下所示:InfiniteScroll.prototype.observerCallback=function(entries){//handletheinfinitescroll}InfiniteScroll

javascript - 如何使用 Sinon/Qunit 模拟 'timeout' 或 'failure' 响应?

我在模拟成功条件时没有遇到任何问题,但似乎无法理解在使用Sinon和Qunit进行测试时如何模拟失败/超时条件和ajax函数:我的设置是这样的:$(document).ready(function(){module("myTests",{setup:function(){xhr=sinon.sandbox.useFakeXMLHttpRequest();xhr.requests=[];xhr.onCreate=function(request){xhr.requests.push(request);};myObj=newMyObj("#elemSelector&

javascript - 使用 qUnit 时如何在每次测试前运行一个函数?

什么是qUnit的nUnits[SetUp]属性? 最佳答案 注册一个QUnit回调varmySetupFunc(details){/*setupcode*/}QUnit.testStart(mySetupFunc);回调详情从QUnit版本1.10.0pre-A开始,每个注册callback将接收一个散列作为第一个(也是唯一的)参数。我在上面的示例中将我的命名为“详细信息”。哈希的内容因回调而异。这是每个散列中的信息列表。begin(开始所有测试){}/*emptyhash*/done(所有测试结束)失败:(int)总测试失败通过

javascript - qUnit拆解方法

是否有可能在qUnit中的每个测试后运行拆卸方法??如果没有,是否有任何插件可以做到这一点? 最佳答案 您可以在modulefunction中传递它像这样:module("name",{teardown:function(){...}}); 关于javascript-qUnit拆解方法,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/2028311/

javascript - 使用 Resharper 测试运行程序时如何在我的 qunit 测试中设置断点

使用Resharper6可以编写qunit测试并使用集成的resharper测试运行器运行这些测试是一件很棒的事情。但是,我想知道是否可以在测试和被测代码中设置断点。问题是,每次打开浏览器时,它都会使用不同的随机端口号,这意味着您不能只在浏览器中设置断点并通过按F5重新运行测试。所以我想知道,是否有可能以某种方式实现? 最佳答案 使用Resharper和VisualStudio的更简单方法。只需在js文件的第一行输入:QUnit.moduleDone=function(){}Resharper测试不会完成,您可以根据需要在浏览器中多