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

为什么我的chai rejectedWith断言不起作用?

chai是一个流行的JavaScript断言库,用于编写测试用例。chai提供了多种断言风格,包括expect、should和assert。

在chai中,chai-as-promised是一个插件,用于处理Promise的断言。chai-as-promised提供了一些特殊的断言方法,如rejected和fulfilled,用于验证Promise的状态。

如果你的chai rejectedWith断言不起作用,可能有以下几个原因:

  1. 忘记使用chai-as-promised插件:在使用chai-as-promised的断言之前,需要先安装和引入chai-as-promised插件。确保你已经正确安装了chai-as-promised,并在测试文件中引入了该插件。
  2. 忘记返回Promise:chai-as-promised的断言方法需要在返回的表达式上使用,确保你的测试代码返回了一个Promise对象。如果你的测试代码没有返回Promise,chai-as-promised的断言将不会生效。
  3. Promise没有被reject:chai-as-promised的rejected断言用于验证Promise是否被reject。如果你的Promise没有被reject,那么rejected断言将不会通过。请确保你的Promise在适当的情况下被reject。
  4. 版本兼容性问题:chai-as-promised的版本可能与chai的版本不兼容,导致断言不起作用。请确保你使用的chai-as-promised版本与chai的版本兼容。

综上所述,如果你的chai rejectedWith断言不起作用,你可以检查是否正确安装和引入了chai-as-promised插件,是否返回了Promise对象,是否正确reject了Promise,以及chai-as-promised和chai的版本兼容性。如果问题仍然存在,你可以提供更多的代码和错误信息,以便更好地帮助你解决问题。

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

相关·内容

为什么模型准确率都 90% 了,却不起作用

举例来说,在处理用户流失(指用户在一段时间之后不再继续使用公司产品情况)这类市场问题预测时,流失用户所占百分比一般都会远低于留存用户。...如果说这个例子里分类是八比二的话,那么只会有 20% 用户终止了与公司继续接触,剩下 80% 用户则会继续使用公司产品。 但问题是,这 20% 用户流失可能对公司非常重要。...但在处理这类二元分类模型时,样本数量不平衡两个类别通常会让事情变得棘手,而大多数数据分析师所依赖精度指标也并不是万能。...成功预测将为模型加分,而失败预测也会有一定扣分。...这种情况中假正可能也就是多发几封邮件,你大概率也不会在意有五百个对产品非常忠诚客户会受到多余邮件而造成浪费,我们希望是能通过消息提醒,保留住那些潜在客户流失。

1.9K30
  • Nodejs中编写异步单元测试代码

    使用测试框架是Mocha,断言库是Chai,那么今天我们就来聊聊在单元测试中,处理异步代码各种姿势。 处理promise const { query } = require('.....,这段代码就是测试数据库连接状态库,在断言库中偏向于使用should类型,因为更加语义化,更符合TDD阅读习惯。...为什么呢,原因是在第二行、第四行。...const { should } = require('chai'); ... should(); 在这样引用了should之后,是无法像刚才代码中那样使用should为什么我会写出这样语法呢?...这两种方法写完,应该还有很多同学觉得这样写非常啰嗦吧,那么我们来看一个chai断言中间件,这个中间件可以大大简化promise相关断言,这个库就是chai-as-promised。

    1.4K10

    前端小知识:为什么你写 height:100% 不起作用

    为什么想要设置一个全屏元素时候,高度不受%控制?...很容易就实现,但是这里height却不能设置成%比(该元素会消失看不见),这是为什么呢?...否则,浏览器就会简单让内容往下堆砌,页面的高度根本就无需考虑。 因为页面并没有缺省高度值,所以,当你让一个元素高度设定为百分比高度时,无法根据获取父元素高度,也就无法计算自己高度。...height; 要特别注意一点是,在之中元素父元素并不仅仅只是,还包括了。...全部代码如上,可以看到设置了line-height为100%没有居中,这是为什么呢,因为这时候%是相对于字体尺寸?所以直接作用于没有绝对高度元素是不行

    1.7K50

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

    大家好,又见面了,是你们朋友全栈君。...,可以选择自己喜欢断言库,选择测试结果report intern: 看官方介绍该测试框架功能极其全面,似乎囊括了业内跟测试相关所有功能 2.2 断言chai:应该是目前组流行断言库了,支持TDD...(assert)、BDD(expect、should)两个风格断言库 var chai = require('chai'); var assert = chai.assert; // typef...,基于should.js,是mini版BDD库 assert(node自带核心模块): 可以在node中使用断言模块 2.3 mock库 先来说说为什么需要mock吧:需要测试单元依赖于外部模块...3.单元测试技术实现原理 测试框架:判断内部是否存在异常,存在则console出对应text信息 断言库:当actual值与expect值不一样时,就抛出异常,供外部测试框架检测到,这就是为什么有些测试框架可以自由选择断言原因

    1.5K20

    认识一下断言和学会简单使用

    搞明白什么是断言 断言是一种调试手段,他不是一种正常开发逻辑代码,只是辅助我们开发人员进行代码调试用,生产环境是不可以出现断言代码,所以首先明确一点,他和if判断区别在于,if判断是兼容和排除用户操作来...,断言是兼容和排除开发者操作来,比如开发者觉得这一块不可以是什么,那么他为了程序可以避免这种已经知道问题出现,就可以使用断言进行拦截和抛出异常。...chai import { assert } from 'chai' const count = (n, m) => { console.log(assert); assert(m !...chai是一个断言库,前面说了,断言作用,那么如果每一个都断言功能都自己写的话,开发成本就会变得比较高,就好比每一个UI效果都是自己写,那么开发一个页面的成本就会变得很高,chai就是提供了很多我们常用一些断言逻辑...,chai里面会提供很多相似的功能供我们参考使用!

    9210

    Android Layoutlayout_height等属性为什么不起作用

    , null);这句代码上,在使用inflate时候,如果第二个参数(View root)为null,那么将不会加载你布局文件里最顶层那个布局节点布局相关配置(就是以android:layout...(FrameLayout等)在onLayout时候控制View大小、位置、对齐等等。。...方法,这样系统框架就会自动使用该布局读取我们在xml中配置布局属性来控制我们VIew位置。。...基于以上分析,我们在使用LayoutInflateinflate方法时候一定要保证root参数不能为null,其实这个root就是父View意思,就是说你把xml转换为一个VIew时候,该VIew...说到这个问题了,其实还有一些布局,他们参数配置要满足一定条件才会起作用,比如FrameLayout里View,你要想它leftMargin生效,必须指定它layout_gravity为left

    1.3K30

    大前端自动化工厂(5)—— 基于Karma+Mocha+Chai单元测试和接口测试

    Mocha基本语法 describe('现在要测某一个页面的几个功能',function(){ describe('现在要测XX功能',function(){ it('某个变量值应该是数字...; 不同风格断言库 支持should.js,expect.js及node核心断言模块assert等。...Chai是一个断言库合集,支持expect,assert,should断言语法,非专业测试岗位其实没必要深究,了解使用方法就可以了。...(Person);//断言Tim是Person类实例 上面的语法在引入了Chai后都是支持,当断言不成立时,结果报告中会给出明确标记。...测试用例文件基本写法: var chai = require('chai');//引入断言库 var expect = chai.expect;//使用expect语法 //引用源代码中业务逻辑模块

    1.3K20

    为什么自定义View wrap_content不起作用

    前言 自定义View是Android开发中非常常用知识 可是,在使用过程中,有些开发者会发现:为什么自定义View 中设置wrap_content属性不起作用(与match_parent相同作用...解决了问题2:wrap_content起到与match_parent相同作用 那么有人会问:wrap_content和match_parent具有相同效果,为什么是填充父容器效果呢?...为了更好表示判断逻辑,建议你们用本文提供解决方案,即根据布局参数判断默认值设置 ---- 6....总结 本文对自定义View中 wrap_content属性不起作用进行了详细分析和给出了解决方案 接下来,将继续对自定义View应用进行分析,有兴趣可以继续关注Carson_Ho安卓开发笔记...因为你们赞同/鼓励是写作最大动力!

    2.3K30

    为什么RAG不起作用?失败主要原因和解决方案

    其实阻碍RAG系统一个关键因素是语义不协调,这是由于任务预期含义、RAG理解以及存储底层知识之间不一致。...,但核心思想可以推广到其他用例 为什么选用RAG?...围绕聊天界面的狂热完全颠覆了这一范式,五年后,这种做法很可能被视为是错误。 ChatGPT以及大部分新兴生态系统鼓励范式是“给我任何文本,就给你任何文本。”...这些AI没有效力或成本和延迟保证,而是有着“可能在某些时候在某种程度上是对模糊承诺。其实企业应该通过提供更具范围和主观性接口来构建更健壯AI。...这也就是对于OpenAI所说超级对齐来说是非常重要但又不是必要。(这里仅是个人关系,供参考) 总结 我们正在见证AI新时代到来。

    23410

    为什么BERT不行?

    当然了,bad case分析这块也聊了很多,多分析能发现其中端倪,知道模型需要什么,该怎么处理,再放一遍在这里,希望能好好阅读。...训练层面的分析 BERT训练其实挺多讲究,这里实验效果要保证对参数有一定要求,所以大家要多去观察训练过程暴露问题,训练过程其实就是要观测loss变化、验证集效果等问题,放置没学到、学飘了之类问题...类似的思路其实在这两篇文章里其实都有谈过: 心法利器[44] | 样本不均衡之我见 所以,很多时候你需要可能是更多地挖掘数据,从日志,从更多渠道去找,这个可能比增强本身要好。...这里背后逻辑可以参考这篇文章: 心法利器[45] | 模型需要信息提供够了吗 训练问题 针对训练问题,其实也就是一个经验问题了,多弄其实问题就会小很多,大家可以多去看各个论文使用超参,一般调差不多基本都不会有的...而文章本身输出并非是按照这个思路走,而是从一些大家经常问点深入来讨论,希望能从角度和风格来思考和回答问题。

    1.2K20

    Vue 测试速成班

    在本教程中,将向你展示如何为 Vue 应用程序编写单元、集成和端到端测试。 有关更多测试示例,可以查看我 Vue TodoApp 实现[1]。 1....但是,为什么我们不能只写单元测试呢?因为金字塔上端测试可以帮助我们检查系统里各个组件之间是否能很好地协同工作,使我们对系统更有把握。...: 单元/集成测试工具库[4]•chai: 断言Chai[5] 从现在开始,单元/集成测试文件可以使用 *.spec.js 后缀写在 tests/unit 目录中。...Mocha 没有内置断言库,所以我们必须使用 Chai :它可以设置对结果期望。Chai 有许多不同内置断言,但没有涵盖所有用例,缺失断言可以通过 Chai 插件系统导入。...我们必须将 sinonChai 作为一个插件添加到 Chai 中,以便能够对调用签名进行断言

    2.7K10

    前端测试驱动开发模式(TDD)快速入门

    来源:http://www.ltesting.net 测试驱动开发(Test-Driven Development)是一种软件开发思维和方法,理解是它是一种开发循环,先写测试代码,再用最小代码实现这个测试...官网:mochajs.org github: github.com/mochajs/moc… chai.js chai 主要提供了断言函数assert,用来断言和比较测试结果和代码执行结果。...,第一个参数是范围名字,第二个是一个回调函数,其中可以放单元测试代码 it()里写单元测试代码,第一个参数还是这个测试名字,第二个回调函数中放入单元测试代码 assert 就是断言代码执行后结果是什么...,比如这个例子中,因为要测试"实例化后存在navigateTo方法",就断言new之后实例包含navigateTo这个函数,所以用到了assertisFunction方法 写完之后运行npm run...let fn = sinon.fake() //生成一个模拟函数 assert(fn.called) //断言这个函数是否被执行 复制代码 小结 本文只是对Tdd一个简单介绍,适用于快速入门。

    2.5K20

    盘点那些非常实用JavaScript测试框架

    支持异步测试:Mocha 支持异步测试,可以方便测试异步代码。 兼容多种断言库:Mocha 可以使用 Chai、Should.js、Expect.js 等多种断言库,提供了灵活测试方案。...Chai Chai 是一个 BDD/TDD 断言库,支持在 Node.js 和浏览器中使用。它提供了一系列方便断言函数,方便开发人员编写单元测试。...Chai 主要特点包括: 支持多种断言风格:Chai 支持 BDD 和 TDD 两种断言风格,使用起来更加灵活。 提供丰富断言函数:Chai 提供了丰富断言函数,方便开发人员编写单元测试。...可扩展性强:Chai 提供了一系列可扩展插件,方便开发人员自定义断言函数。 兼容多种测试框架:Chai 可以和 Mocha、Jest 等多种测试框架配合使用,提供了灵活测试方案。...Chai 是一个功能强大断言库,如果你需要编写灵活单元测试,可以考虑使用 Chai。 Jasmine Jasmine 是一个 BDD 测试框架,可用于测试 JavaScript 代码。

    2.1K40

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

    希望通过对这些工具各自作用掌握,了解完整前端测试技术方案。前端单元测试领域也很多,这里主要讲对于前端组件如何进行单元测试,最后会主要介绍下对于 React 组件一些测试方法总结。...而我们在做单元测时往往需要断言库能够提供良好测试报告,这样才能一目了然地看到有哪些断言通过没通过,所以使用专业单元测试断言库还是很有必要。 chai ?...chai chai 是目前很流行断言库,相比于同类产品比较突出。...比 Node 自带 assert 增加了一个断言说明参数,可以通过这个参数提高测试报告可读性 $ node chai-assert.js /home/quanwei/git/learn-tdd-bdd...,所以这里暂且认为浏览器不支持 ES6 代码, 依然需要做一次转换。

    9.6K20

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

    断言Chai 断言库(assertion library)是用来写断言库。...维基百科 断言(程序)一文是这么解释断言:在程序设计中,断言(assertion)是一种放在程序中一阶逻辑(如一个结果为真或是假逻辑判断式),目的是为了标示与验证程序开发者预期结果-当程序运行到断言位置时...Chai 只是一个断言库,它作用是用来在测试脚本中编写断言。...有些测试框架会自带断言库,但 Mocha 没有,Chai 作为单独断言库,功能很强大,这两者是黄金搭档。 接下来我们将以一个简单加法模块为例来说明。完整代码可以 查看此处 。...上面的 expect(add(1, 1)).to.be.equal(2); 就是一个断言,此处我们选择Chai expect 接口(interface)方式,它是 BDD 风格(BDD style

    2.7K00
    领券