我是Qunit和单元测试的新手.

我正在试图找出什么和如何测试以下功能.它目前没有做太多,但是我想断言,如果我传递错误的错误值被抛出:

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 not a string'); }
    if (arguments.length !== 2) { throw new Error('There should be only two arguments passed to this function')}

};

如果没有满足这些条件,我该如何断言会抛出错误?

我试图看看库尼特的“提出”断言,但认为我误会了.我的解释是,如果抛出错误,测试通过.

所以如果我测试了这样的东西:

test("a test",function () {
    raises(function () {
        throw attrToggle([],[]);
    },attrToggle,"must throw error to pass");
});

测试应该通过,因为错误被抛出.

解决方法

一些事情错了,一个工作的例子是 http://jsfiddle.net/Z8QxA/1/

主要的问题是你把错误的东西作为第二个参数传递给了raise(). second argument用于验证正确的错误是否被抛出,因此它可能要求正则表达式,错误类型的构造函数或允许您进行自己的验证的回调.

所以在你的例子中,你正在传递attrToggle作为抛出的错误类型.你的代码实际上会抛出一个错误类型,所以检查实际上是失败的.传递错误作为第二个参数的工作原理:

test("a test",function () {
    raises(function () {
        attrToggle([],Error,"Must throw error to pass.");
});

其次,在raise()中调用attrToggle()时,不需要throw关键字.

javascript – 断言功能会使用Qunit引发异常的更多相关文章

  1. Ajax负载测试工具

    似乎有很多压力/负载测试工具支持AJAX.我想知道这些工具是如何实现的.他们只记录http请求并重播吗?它是测试AJAX应用程序的正确方法吗?

  2. jquery – 我们如何对DOM操作执行单元测试?

    但是,就像我说的…没有解决.可分解?解决方法最新版本的QUnit支持#qunit-fixture元素,可以将HTML添加到QUnit网页.例如,在你的HTML中:并在您的JavaScript中:

  3. jquery – 如何将ASP.NET MVC 3页面的HTML获取到QUnit测试中?

    到目前为止,我提供了一个HTML-mock,这个被测试的javascript文件使用。解决方法从我可以看到,您正在尝试从服务器预呈现HTML,并运行您的单元测试。最好的办法是创建一个标准的HTML页面,将其保存在您的脚本文件夹中,并将其用作“测试”页面。你不应该依赖任何标准的HTML来运行你的单元测试,因为dom可以随时改变,而是在你的单元测试中处理所有的dom操作,然后运行你的断言,然后如果它最大程度地提高效率,那么删除它。

  4. 无头JavaScript测试HTML5音频/视频

    我知道还有很多其他类似的问题,但答案并没有解决这个问题.我在我的网站上使用了一个JavaScript文件,该文件使用HTML5WebAudio并希望对其进行单元测试.我已经看过将Qunit与PhantomJS一起使用,在你说出任何我知道Phantom不支持它的情况之前(http://phantomjs.org/supported-web-standards.html)但是我想知道是否有办法解决这个

  5. javascript – QUnit,Sinon.js – 如何确保Post-Fake Server具有正确的请求体?

    我有一个JavaScript函数,它发布到远程API,我正在编写单元测试.我想测试的方法是这样的:我有一个单元测试(在QUnit中利用Sinon.js)测试在请求成功时正确调用回调:此测试有效,但无论请求主体是什么,它都会成功返回.我想做的只是假冒服务器响应,如果请求正文是{one:’one’,2:’two’}解决方法我打算建议你使用filteredrequests.但是目前的sinon实现是不可

  6. javascript – 在QUnit设置中定义测试变量

    我意识到QUnit.module提供了围绕每个测试的设置和拆除回调.如在setup中所见,我想声明一个变量以在以下QUnit.tests中使用.但是,由于变量只有函数作用域,因此两个测试失败,称usedAcrosstests未定义.我可以删除var声明,但那样会污染全局范围.特别是如果我有多个模块,我宁愿不将特定于测试的变量声明为全局变量.有没有办法在设置一个变量以在模块内的测试中使用而不污染全局范围?

  7. javascript – Qunit测试在页面刷新之间交替通过和失败

    甚至在URL中添加GET参数会导致页面上的相同行为.在失败的情况下,测试失败,因为内部jQuery在设置了submit()处理程序时正在调用.on().但是为什么在这种情况下测试总是不会失败?在页面刷新期间保持状态的浏览器是什么?

  8. javascript – 为什么会使用expect()在使用QUnit编写测试时?

    那么,我认为期望的方式是使用分组有意义的任务.它可用于测试事件或回调,例如:如果您将有意义的任务分组在小型测试中,那么只有2或3个断言才会成为一个噩梦.

  9. jquery – 在qUnit中测试整页重定向

    我有以下功能我想用qUnit测试这个函数.问题是,当我调用运行测试的HTML文档时,只要它进入调用redirect()的测试,浏览器就会加载google.com.我想做的是以某种方式模拟window.location.href,以便它不重定向,所以我可以检查它是否设置为正确的值.以一种更可测试的方式重写它将是一个可接受的答案,并受到欢迎.由于我使用的是qUnit,因此一些jQuery魔法是合适的,

  10. javascript – 断言功能会使用Qunit引发异常

    我是Qunit和单元测试的新手.我正在试图找出什么和如何测试以下功能.它目前没有做太多,但是我想断言,如果我传递错误的错误值被抛出:如果没有满足这些条件,我该如何断言会抛出错误?

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部