首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

expect().to.be.a( error )在抛出error_ chai时不起作用

expect().to.be.a(error)是chai库中的一个断言方法,用于判断一个值是否为指定的类型。在抛出error时,该断言方法可能不起作用的原因可能有以下几点:

  1. 使用的chai版本不支持该断言方法:不同版本的chai库可能会有一些差异,某些版本可能不支持特定的断言方法。建议检查所使用的chai库的版本,并查阅官方文档以确认是否支持expect().to.be.a(error)方法。
  2. 错误类型不匹配:expect().to.be.a(error)方法要求传入一个错误类型作为参数,用于判断被测试的值是否为该错误类型的实例。如果传入的错误类型与实际抛出的错误类型不匹配,断言可能会失败。请确保传入的错误类型与实际抛出的错误类型一致。
  3. 错误未被正确抛出:在测试代码中,如果错误没有被正确地抛出,那么expect().to.be.a(error)方法自然无法生效。请确保在测试代码中正确地抛出了错误,以便进行断言。

总结:如果expect().to.be.a(error)在抛出error时不起作用,建议检查chai库的版本,确认错误类型是否匹配,并确保错误被正确地抛出。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 写代码无BUG,网易云前端单元测试方案总结

    chaiexpect 断言风格如下 expect(foo).to.be.a('string'); expect(foo).to.equal('bar'); expect(foo).to.have.lengthOf...例如下面的用例: foo 是一个字符串 ->expect(foo).to.be.a('string') foo 字符串里包含 'bar' ->expect(foo).to.include...).to.be.a('function'); }) it ('expect 2 * 3 = 6', () => { expect(multiple(2, 3)).to.be.equal...给每一个文件都要手动引入 chai 比较麻烦 ,这时候可以给 mocha 配置全局脚本,项目根目录 .mocharc.js 文件中加载断言库, 这样每个文件就可以直接使用 expect 函数了。..., mocha , karma , jasmine 和 jest, 每种工具分别对应一些自己特有的工具链,选取合适的测试工具根据实际需要选择, 测试领域还有非常多的工具数都数不过来,下面来看下

    9.6K20

    打造前端工程测试体系(1)

    TDD(Testing Driven Developement,测试驱动开发),强调的是一种开发方式,以测试来驱动整个项目,即先根据接口完成测试编写,然后完成功能要不断通过测试,最终目的是通过所有测试...Chai 只是一个断言库,它的作用是用来测试脚本中编写断言。...测试脚本中,断言库提供了一些语法支持,用来做判断的标准,比如你想测试某个变量 a 应该为字符串,你只需类似这么写 expect(a).to.be.a('string'); 即可,其他的交给 Mocha.../add.js'); var expect = require('chai').expect; describe('加法函数的测试', function () { it('1 加 1 应该等于...上面的 expect(add(1, 1)).to.be.equal(2); 就是一个断言,此处我们选择的是 Chaiexpect 接口(interface)方式,它是 BDD 风格(BDD style

    2.7K00

    自动化测试

    集成测试: 单元测试的基础上,将所有模块按照需求组装起来进行测试叫做集成测试。...其实我觉得这种方法并不是很好,很难想象没有实现出功能之前,怎么去编写测试代码,也不清楚TDD是否用的很多。...常见单元测试库: Karma、mocha、jest、jasmine,一般这些库都会配合一些断言库一起使用,比如chaiexpect、should、assert等。...比如判断一个数据是否是字符串: expect('foo').to.be.a('string'); 通过断言库进行判断,是否正确。...不同测试库区别还是很大的,比如karma可以跑浏览器上,可以测试样式,jest这个是Facebook开源的,用js模拟浏览器环境,不能测试样式,默认就具备断言库chai,还提供了覆盖率。

    84030

    使用Mocha测试node应用

    本文作者:IMWeb 何璇 原文出处:IMWeb社区 未经同意,禁止转载 ---- [TOC] ---- 前言 使用node开发iconfont平台,由于没有产品与设计的主导,我遇到了协同开发的一大难题...断言 断言(assertion)是一种放在程序设计中的一阶逻辑(如一个结果为真或为假的逻辑判断式) Mocha支持你用任何一种断言库,无论是should.js、chaiexpect.js、better-assert...这里我们就用expect.js: expect(window.r).to.be(undefined); expect({ a: 'b' }).to.eql({ a: 'b' }) expect(5).to.be.a...和TDD(测试驱动开发)两种测试风格,BDD对于TDD来说关注点更关注整体行为是否符合预期,表达方式上更接近于自然语言的习惯。...相信当实践经验足够丰富,对各种业务逻辑足够熟悉就能科学地开发吧!

    1.1K20

    前端单元测试总结_javascript单元测试

    :应该是目前组流行的断言库了,支持TDD(assert)、BDD(expect、should)两个风格的断言库 var chai = require('chai'); var assert =...expect.js:BDD风格的另外一个断言库,基于should.js,是mini版的BDD库 assert(node自带核心模块): 可以node中使用的断言模块 2.3 mock库 先来说说为什么需要...3.单元测试技术的实现原理 测试框架:判断内部是否存在异常,存在则console出对应的text信息 断言库:当actual值与expect值不一样,就抛出异常,供外部测试框架检测到,这就是为什么有些测试框架可以自由选择断言库的原因...,只要可以抛出异常,外部测试框架就可以工作。...new Error(text); } } function fn () { ... } function spy(cb) { var proxy = function ()

    1.5K20

    使用Mocha测试node应用

    [TOC] 前言 使用node开发iconfont平台,由于没有产品与设计的主导,我遇到了协同开发的一大难题——合并代码。...断言 断言(assertion)是一种放在程序设计中的一阶逻辑(如一个结果为真或为假的逻辑判断式) Mocha支持你用任何一种断言库,无论是should.js、chaiexpect.js、better-assert...这里我们就用expect.js: expect(window.r).to.be(undefined); expect({ a: 'b' }).to.eql({ a: 'b' }) expect(5).to.be.a...和TDD(测试驱动开发)两种测试风格,BDD对于TDD来说关注点更关注整体行为是否符合预期,表达方式上更接近于自然语言的习惯。...相信当实践经验足够丰富,对各种业务逻辑足够熟悉就能科学地开发吧!

    1K100

    vue中关于测试的介绍

    该工具Vue中的主要作用是将项目运行在各种主流Web浏览器进行测试。 换句话说,它是一个测试工具,能让你的代码浏览器环境下测试。...需要它的原因在于,你的代码可能是设计浏览器端执行的,node环境下测试可能有些bug暴露不出来;另外,浏览器有兼容问题, karma提供了手段让你的代码自动多个浏览器( chrome,firefox...Mocha mocha(摩卡)是一个测试框架,vue-cli中配合。mocha本身不带断言卡,所以必须先引入断言库,Chai断言库实现单元测试。...断言库 所谓“断言” ,就是判断源码的实际执行结果与预期结果是否-致,如果不一致就抛出一个错误。下面这句断言的意思是,调用add(1, 1) ,结果应该等于2....复制代码 var expect = require('chai).expect; expect(1 + 1)).to.be.equal(2); Chai是一种断言库(http://chaijs.com

    97010

    使用 TypeScript 改造构建工具及测试用例

    Webpack的文档中同样也提到了这句,所以这是一个兼容的方法,命令运行时指定一个路径,不影响原有配置的情况下创建一个供Webpack打包使用的配置。...之前的分享中也提到过,这么多的命令你并不需要完全记住,只知道一个expect(XXX).to.equal(true)就够了。...但是这样的通篇to.equal(true)是巨丑无比的,而如果使用那些语义化的链式调用,不熟练的情况下很容易就会得到: Error: XXX.XXX is not a function 因为这确实有一个门槛问题...也就是说测试用例编写,我们可以通过动态提示来快速的书写断言,而不需要结合着文档去进行“翻译”。 ? ?...全面切换到TypeScript更是能够降低两种语法之间互相切换所带来的不必要的消耗,祝大家搬砖愉快。

    1.5K40

    使用mocha编写node服务单元测试

    chai断言库 mocha可以搭配你喜欢的任何断言库,经常使用到的有chai断言库。 chai提供了多种风格语法去帮助我们判断函数的执行结果。...当我们的异步逻辑耗时较长,需要手动地调整这个超时时间。 我们可以mocha启动传入timeout参数,或者测试用例中显示声明该测试用例的超时时间。...it('take less than 5000ms', function(){ this.timeout(5000); }) 难以模拟的逻辑 测试服务接口,总会遇到一些难以模拟或者说不能随便执行的逻辑...我们也可以让替换函数主动抛出错误,来测试调用它的函数是否可以正确处理异常: it('测试db操作失败', async function(){ const stub = sinon.stub(db,...(); assert.isNotNull(res.error, 'res error should not be null') stub.restore() }) 生命周期 细心的读者应该发现了我们每次单元测试开始和结束前都需要做一些准备工作

    3.9K20
    领券