草庐IT

chai-enzyme

全部标签

Karma、Mocha和Chai自动化测试解决方案

一、背景随着平台功能越来越多,接口及关联数据复杂,传统功能测试无法满足覆盖测试要求,顾搭建针对TypeScript的自动化单元测试。该测试体系具有以下优点:缩短测试时间:通过自动化测试体系,可以一键执行测试用例,生成测试报告以及代码覆盖率报告。开发人员可根据报告分析出问题所在,以及未测试的代码。更高的投资回报率:自动化测试比传统功能测试速度更快,且测试用例可重用,避免功能开发后“关联功能”的重复测试。减少了测试以及开发时间,对快速相应要求极高的市场极为有益。早期缺陷检测:编写白盒测试用例阶段,相当于做了一次代码走查,可分析出代码存在的浅显逻辑错误;白盒测试执行阶段,相当于将所有功能执行一至多遍

javascript - 使用 Mocha 和 Chai 捕获超出范围的错误

我正在修改node.js库以支持真正的异步操作。我在使用Mocha和Chai时遇到了麻烦,无法通过这个(类似的)测试。it('shouldthrowanerror',function(){expect(function(){process.nextTick(function(){thrownewError('Thisismyerror');});}).to.throw(Error);});问题是-由于nextTick-错误被抛出it的范围,除了测试失败之外,Mocha还输出以下内容。UncaughtError:Thisismyerror为了使其成功,构建此测试的正确方法是什么?

javascript - 使用 Puppeteer、Mocha 和 Chai 断言 html 标签属性中存在文本

我正在开始使用这些技术(包括Javascript)的旅程,所以,这是一个初学者问题。我正在努力弄清楚如何断言HTML属性中的给定文本符合预期。HTML片段:到目前为止,这是我的.it函数,使用Mochai、Puppeteer和Chai(为清楚起见省略了设置和拆卸:it('optoutofemail',asyncfunction(){awaitpage.setDefaultNavigationTimeout();awaitpage.waitForSelector('.widget-title');constframe=page.frames().find(frame=>frame.nam

javascript - 按照 promise 用 Chai 测试拒绝

我想测试一个返回promise的函数。在这个特定的测试中,promise预计会被包含经典message字段的Error对象拒绝(在这个测试中,它应该等于"myerrormessage")和我添加的一个名为code的自定义字段,它是一个字符串(如“EACCESS”、“ERIGHT”等,在这个测试中它应该等于“EFOO”)我想为此使用chai-as-promised。returnexpect(foo()).to.eventually.be.rejectedWith("myerrormessage");此断言有效,但现在我也想测试code字段。如何做到这一点? 最

javascript - 如何用 jest 和 enzyme 模拟 React 组件方法

我有一个React组件(这是为了演示问题而简化的):classMyComponentextendsComponent{handleNameInput=(value)=>{this.searchDish(value);};searchDish=(value)=>{//Dosomething}render(){return()}}现在我想测试handleNameInput()使用提供的值调用searchDish。为了做到这一点,我想创建一个jestmockfunction替换组件方法。到目前为止,这是我的测试用例:it('handleNameInput',()=>{letwrapper=s

javascript - Chai:如何使用 'should' 语法测试未定义

基于this使用chai测试angularjs应用程序的教程,我想使用“应该”样式添加对未定义值的测试。这失败了:it('cannotplayoutsidetheboard',function(){scope.play(10).should.be.undefined;});出现错误“TypeError:无法读取未定义的‘should’属性”,但测试通过了“expect”风格:it('cannotplayoutsidetheboard',function(){chai.expect(scope.play(10)).to.be.undefined;});如何让它与“应该”一起工作?

node.js - 使用 Sinon-Chai 时测试失败显示 "Error: timeout of 2000ms exceeded"

我正在为以下路线(express)编写集成测试。代码如下:varq=require("q"),request=require("request");/*ExampleofservicewrapperthatmakesHTTPrequest.*/functiongetProducts(){vardeferred=q.defer();request.get({uri:"http://localhost/some-service"},function(e,r,body){deferred.resolve(JSON.parse(body));});returndeferred.promise;

arrays - 比较 chai 中的数组

我正在使用chai和chai-as-promised(以及更多框架,但在这种情况下无关紧要)编写一些测试,我需要检查我从网页获得的数组是否与预定义的数组。我尝试使用expect(arrayFromPage).to.eventually.deep.equal(predefinedArray),但它不起作用,因为页面上元素的顺序有时不同(这没关系,我不'不需要检查它们是否在相同的顺序)。我找到了一种通过使用expect(listFromPage).to.eventually.include.all.members(predefinedArray)来解决此问题的方法,但我想知道是否有更好的解

node.js - express 中间件测试 mocha chai

有没有办法在express中测试这些中间件:module.exports=functionlogMatchingUrls(pattern){returnfunction(req,res,next){if(pattern.test(req.url)){console.log('requesturl',req.url);req.didSomething=true;}next();}}我发现的唯一中间件测试是:module.exports=function(request,response,next){/**DosomethingtoREQUESTorRESPONSE**/if(!reque

node.js - 使用 Mocha/Chai 和 async/await 验证是否引发了异常

我正在努力寻找在使用async/await时验证promise在Mocha测试中被拒绝的最佳方法。这是一个可行的示例,但我不喜欢should.be.rejectedWith返回一个需要从测试函数返回才能正确评估的promise。使用async/await消除了测试值的这种要求(就像我对下面wins()的结果所做的那样),我觉得我很可能会在某个时候忘记return语句,在在这种情况下测试将始终通过。//Alwayssucceedsfunctionwins(){returnnewPromise(function(resolve,reject){resolve('Winner');});}/