问题标签 [qunit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net - 模拟/伪造 ASP.NET 服务引用和 QUnit 测试
我刚刚进入 QUnit 测试,并在我的第一页遇到了问题:S
我们使用 ASP.NET 服务引用来利用 html 页面上的异步数据加载,在同一个项目中创建对 Web 服务的引用。ASP.NET 在幕后所做的(ScriptManager 控件)是创建一个表示服务方法并处理所有 AJAX 调用的 JS 文件。
使用它,我有一个在 document.ready jQuery 事件中调用这些方法之一的页面。我现在正在尝试使用 QUnit 对此 js 文件进行测试,但要避免让 js 文件调用实际的 Web 服务并改用模拟服务。到目前为止,这是我的尝试:
main.js(生产代码文件)
main-test.js(测试QUnit代码,本页引用main.js)
此测试失败。LoadData 方法作为原始(main.js)document.ready 事件的一部分被调用,因此它仍然调用生产 Web 服务,并且测试失败,因为从未设置(或在生产中定义)该 GetDataCalled 变量。我做错了 asyncTest 吗?(这是我使用 QUnit 的第一天,所以我很可能是)
我可以看到这个工作的另一种方式是如果我可以覆盖 main.js document.ready 事件,但我不太确定如何做到这一点。我也不想在我的生产 main.js 代码中添加“testEnvironment == true”检查。
jquery - 我们如何针对 DOM 操作执行单元测试?
netTuts.com 上对QUnit的介绍引发了一次有趣的交流(从未解决),讨论如何针对操作 DOM 的操作应用单元测试。以下引用(亚历克斯·约克)达到了症结所在:
如果你有这样的功能,那就太好了:
函数 add(a, b) { var 结果 = a + b; $(“input#ResultTestBox”).val(result);
在上面的测试中,我想测试两件事:a 和 b 的相加,以及正确放入 DOM 元素的结果。我很想通过提供一些模拟 HTML 来测试第二件事。可能的?
但是,就像我说的......未解决。可解决?
rake - 如何从 rake 运行我们的 qunit 测试?
我希望能够发出命令rake test:qunit
并运行我们的 qunit 测试。这可能吗?可以在不打开浏览器窗口的情况下完成吗?
javascript - Ajax 响应中的尾随空格
我正在尝试使用Qunit来测试一些代码,但是我在使用 Ajax 调用时遇到了一些问题。我什至无法通过使用 jQuery 方法的最简单的 Ajax 调用来正确测试它们。问题似乎是,无论我做什么,文本响应都会附加一个尾随空格。
我的初始代码类似于
其中ajax.txt
是一个包含所有字符的文本文件foo
。此测试失败,报告
Ajax 调用正常工作,预期:“foo” 结果:“foo”,差异:
“foo”“foo”
然后我尝试了以下方法:
- 我已经针对“foo”(包括尾随空格)进行了测试
- 我
response.replace(' ', '')
在测试之前做过 - 我改变了 ajax.txt 文件的字体编码
- 我在 Firefox 和 Chrome 中都测试过,每次都清理缓存
- 我已经手动测试了警报中的相等性,即使使用 == 比较
但在任何情况下我都无法得到匹配。例如,在第一个变体中,我得到了令人费解的答案
Ajax 调用正常工作,预期:“foo” 结果:“foo”,差异:“foo”
我现在有点发疯了。我可能做错了什么?
javascript - jQuery 插件:如何使用 qunit 测试插件的配置?
我在编写 jQuery 插件时尝试使用 qunit,我想知道如何测试以下内容:
这是我的 qunit 测试的简单版本:
所以我想知道如何在我的测试中从我的插件中公开内部方法/成员?
javascript - Qunit:测试泄漏
我在测试我的 jQuery 插件时遇到了泄漏问题。当我想在文字对象上模拟一个值或函数时,就会出现问题。
例子:
此测试将失败,因为第一个测试将“bar”变量添加到默认值。我用下面的代码修复了它,但是复制一个副本看起来不是很优雅。
此外,如果我在 jQuery 命名空间中有一些对象,如果我必须为每个对象获取多个副本,它可能会变得有点混乱。所以想知道是否有人有更好的解决方案来“重置”所有对象?
javascript - Javascript 如何从数据对象中删除原型方法或使对象与 Qunit equals 一起工作
我已经开始使用 Qunit 对我的代码进行单元测试,但是在比较对象时遇到了惊人的问题。
我正在测试的代码动态创建一个对象:
这个测试失败了,我可以看到,虽然预期只包含字段 id 和 name,但 result 还包含很多函数,例如
我认为这些功能来自我将对象视为数组以便分配给它。
有没有办法去除这些功能(或首先阻止它们被添加)?
我正在考虑做
有没有更好的办法?
javascript - 使用 qUnit 进行 Javascript 测试
我喜欢用于 JavaScript 单元测试的 qUnit,并且已经成功地将它用于几乎完全是 AJAX 的大型网络托管平台。但是,我必须在浏览器中手动运行它,或者作为 Windows 计划任务运行,这并不理想。
有没有人运行 jUnit 测试作为自动化测试套件的一部分,就像你在(比如说)perl 或 Java 中那样?
jquery - 从不同视图/页面调用时如何更改 AJAX 调用目标?
我正在使用 Qunit 测试一个 .js 脚本。
我有一个静态 .html 测试工具,其中包括 .js“被测代码”(CUT)并包含适当的标记。我正在包含的另一个脚本中使用 QUnit 进行测试。
该工具和测试脚本位于一个项目中:Application.UI.Tests.JScript
.
CUT 中的 AJAX 调用具有相对于使用它的视图的位置的目标。
视图和脚本位于 MVC 项目中的常规文件夹中:Application.UI
.
Application.UI.Tests.JScript
执行脚本Del
和内容文件夹的构建事件,XCopy
以确保针对最新版本的 CUT 副本运行测试。
示例代码:
actionName 转到一个动作:
它现在只返回数据,最终将调用域层中的正确逻辑。
问题:
如何使 CUTApplication.UI
从静态 .html 页面中的正在运行的项目中的控制器上调用 AJAX 操作,Application.UI.Tests.JScript
而无需编辑 CUT 以包含特定于测试的信息?
jquery - 控制 QUnit 测试顺序
我已经用 jQuery 和大量的 ajax 请求(json 格式)构建了一个网站。
我想做一些单元测试来验证服务器端的请求。
当我使用 jQuery 时,我使用 qUnit,但我有一个测试顺序的问题......
例如,我想对此进行测试: - 创建用户 => 可能
- 使用有效名称重命名用户 => 可能
- 使用已使用的名称重命名用户 => 不可能
- 删除用户 = > 有可能
我的代码:
但问题是运行 1 测试,然后运行 4 和 2 和 3 ......(然后,我认为问题在于我的测试不是独立的)
怎么可能解决这个问题?
我可以在 1 中级联所有 4 个测试,但我认为它的可读性会降低......
你怎么看 ?