Tag: qunit

QUnit:如何在不修改ajax调用的情况下测试ajax调用

如何为此编写QUnit测试: function doSomethingWithAjax() { $.ajax({ url: ‘/GetHelloWorld’, success: function(data) { $(“#responseFromServer”).text(data); }, }); } Mockjax + qunit需要在ajax complete()方法中调用start()。

使用Ajax进行QUnit,QUnit会通过失败的测试

我正在研究用于JavaScriptunit testing的QUnit。 我在一个奇怪的情况下,我正在检查从Ajax调用返回的值。 对于以下测试,我故意试图让它失败。 // test to check if the persons are returned! test(“getPersons”, function() { getPersons(function(response) { // persons = $.evalJSON(response.d); equals(“boo”, “Foo”, “The name is valid”); }); }); 但它最终一直在传递。 这是进行Ajax调用的getPersons方法。 function getPersons(callback) { var persons = null; $.ajax({ type: “POST”, dataType: “json”, data: {}, contentType: “application/json”, url: “AjaxService.asmx/GetPersons”, success: function(response) { callback(response); } […]

断言函数抛出Qunit的exception

我是Qunit和unit testing的新手。 我试图找出测试以下function的内容和方法。 它目前没有做太多但我想断言如果我传递错误值的错误值: function attrToggle (panel, attr) { ‘use strict’; if (!panel) { throw new Error(‘Panel is not defined’); } if (!attr) { throw new Error(‘Attr is not defined’); } if (typeof panel !== ‘string’) { throw new Error(‘Panel is not a string’); } if (typeof attr !== ‘string’) { throw new Error(‘Attr is […]

我需要为qUnit测试套件提供许多不同的整页DOM样本

我有一小部分要测试的Javascript,但它在整个页面上运行,例如,通过编号ID“#t34”查找元素。 我需要创建一些不同的页面来测试不同的可能配置。 我看到我可以使用qunit-fixture为要访问的测试创建一个DOM树,但每个页面配置需要是一个完整的页面,因为它将按id找到元素。 各种qUnit教程似乎专注于纯Javascript函数执行简单算术的简单示例。 我需要帮助了解如何使用许多不同的文件构建一个真正的测试套件。 更新了更多详细信息:我是coverage代码覆盖工具coverage.py的所有者。 它会生成HTML报告。 这些报告上有jQuery,可以添加一些交互性。 我正在添加更多,并希望自动化测试。 HTML看起来像这样 。 没有涉及服务器,这些只是写入本地目录的文件,因此没有机会使用ajax。 我想针对许多不同的页面配置运行我的测试,主要是针对红色和绿色代码块的边缘情况。 因为我的代码按编号访问源代码行为$(“#t123”) (例如),所以我在同一个DOM中不能有多个HTML的“页面”,因为ID会发生冲突。 如何针对不同的HTML页面运行qUnit?

Ajax响应中的尾随空格

我正在尝试使用Qunit来测试一些代码,但我在Ajax调用方面遇到了一些问题。 我甚至无法使用jQuery方法使用最简单的Ajax调用来正确测试它们。 问题似乎是,无论我做什么,都会在textResponse上附加一个尾随空格。 我的初始代码是这样的 asyncTest(‘Ajax calls’, function() { expect(1); $.get(‘ajax.txt’, {}, function(response) { equal(response, ‘foo’, ‘Ajax calls work correctly’); }); setTimeout(function() { start(); }, 600); }); 其中ajax.txt是一个包含ajax.txt字符foo的文本文件。 报告失败了 Ajax调用正常工作,预期:“foo”结果:“foo”,diff: “foo” “foo” 然后我尝试了以下内容: 我测试了“foo”(包括尾随空格) 我在测试之前完成了response.replace(‘ ‘, ”) 我改变了ajax.txt文件的字体编码 我每次都在清理缓存时在Firefox和Chrome中测试过它 我已经手动测试了警报内的相等性,即使是使用==比较 但在任何情况下我都无法得到一场比赛。 例如,在第一个版本中,我得到了令人费解的答案 Ajax调用正常工作,预期:“foo”结果:“foo”,diff:“foo” 我现在有点生气了。 我可能做错了什么?

使用jQuery覆盖JavaScript中的复选框

帮助unit testing复选框行为。 我有这个页面: $(function() { $(‘Make Hidden’).appendTo(‘body’); $(‘Was Hidden’).appendTo(‘body’); $(‘#makeHidden’).click(function() { var isChecked = $(this).is(‘:checked’); if (isChecked) { $(‘#displayer’).hide(); } else { $(‘#displayer’).show(); } return false; }); }); 这不起作用,因为return false; 在单击处理程序中。 如果我删除它,它的效果很好。 问题是如果我将click函数拉出它自己的函数并用qunit对它进行unit testing,如果没有return false;则它将无法工作return false; [编辑]使用@ patrick的答案我的结果是: 火狐: 手动测试玩具 – 好。 unit testing – 很好。 生产应用程序的手动测试 – 很好。 IE浏览器: 手动测试玩具 – 失败。 unit testing […]