草庐IT

javascript - 有没有办法在运行时获取当前的 Mocha 实例和编辑选项?

假设您有一个简单的mocha测试:describe("Suite",function(){it("test",function(doneCallback){//herebetests});});在此测试中,我可以通过在describe函数中的任意位置添加this.timeout(VALUE);来更改超时。但是,除了timeout值之外,还有很多其他的Mochaoptions可以从命令行或位于测试文件夹(./test/mocha.opts)中的mocha.opts文件专门声明。我想要的是在运行时更改其中一些选项(例如,reporter),而不是在命令行/mocha.opts文件中。根据我

javascript - Mocha/Chai 异步测试 'done()' fn 不工作

我正在测试我拥有的银行模型,如下所示:describe('BankModel-Ajax',function(){it('loadsbank',function(done){varbank=newBank();bank.OnLoaded=_(function(){expect(this.id).to.eql(1171);expect(true).to.eql(false);done();}).bind(bank);bank.load(1171);});});加载调用向我的服务器发出ajax请求。我的问题是expect(true).to.eql(false);抛出一个UncaughtAss

javascript - 如何使用 Mocha 测试 promise

我正在使用Mocha测试返回promise的异步函数。测试promise是否解析为正确值的最佳方法是什么? 最佳答案 自版本1.18.0(2014年3月)起,Mocha已内置Promise支持。您可以从测试用例中返回一个promise,Mocha将等待它:it('doessomethingasynchronous',function(){//note:no`done`argumentreturngetSomePromise().then(function(value){expect(value).to.equal('foo');})

javascript - 使用 Mocha 和 Chai-as-Promised 测试被拒绝 promise 的特定属性

我正在尝试使用Chai-as-Promised测试被拒绝的Promise的细节,Mocha,和“应该”方言。promise由bluebird实现.这很好用:it('itshouldberejectedwhengivenbadcredentials',function(){varpromiseOfUsers=db.auth("bad","credentials").getUsers();returnpromiseOfUsers.should.eventually.be.rejectedWith(Error)});该错误有一个“状态”属性。我想断言状态是401这不起作用:it('itsho

javascript - Firebase 应用的 Mocha 单元测试

我使用firebase3.3.0,我想使用signInWithEmailAndPassword在我的mocha单元测试中运行,但出现错误auth/network-request-failedUnhandledrejectionError:Anetworkerror(suchastimeout,interruptedconnectionorunreachablehost)hasoccurred.test.jsconstFIREBASE_CONFIG={apiKey:"AIzaSyDdA1POUWy9eid1AdBYuMdxch_k8ob7Qrg",authDomain:"my-app.f

javascript - 使用flowtype静态检查mocha测试代码

我有一些复杂的Mocha代码,我想用FlowType进行静态检查,为什么不呢?下面是一个最小的重现:/*@flow*/describe('it',function(){it('fails',function(){consts:number='flowspotsthiserror';});});当我对此运行Flow时,Flow确实发现了将string分配给number的问题,这表明该方法在某种程度上是有效的。但是,我也得到:test/test.js:44:describe('it',function(){^^^^^^^^identifier`describe`.Couldnotresol

javascript - Mocha , Chai : Assert that Object is included in an Array of Objects

Chai有一个很好的方法来断言数组是否包含某个元素expect([1,2,3]).to.include(2);我想要的是类似的东西,给定一个对象数组:expect([{a:1},{b:2}]).to.include({b:2});这可能吗? 最佳答案 这是一种替代的、非顺序依赖的集合方法:数组expect([1,2,3]).to.include.members([3,2,1])您还可以将其与deep标志一起使用以比较对象:对象数组expect([{id:1}]).to.deep.include.members([{id:1}]);对

javascript - 如何在 Istanbul 尔覆盖 React jsx 文件?

我正在尝试集成我现有的测试流程以包括React,但我在代码覆盖率部分苦苦挣扎。通过遵循此项目/教程-https://github.com/danvk/mocha-react,我已经能够让我的单元测试正常工作-http://www.hammerlab.org/2015/02/14/testing-react-web-apps-with-mocha/我一直在使用Istanbul来覆盖我的节点代码,它运行良好。但是,我无法让它覆盖我在测试中使用的jsx文件。这是一个现有的Istanbul任务的示例,它在vanillajs(节点后端代码)上也运行良好varmocha=require('gulp

javascript - 在使用 Mocha 和 Babel 进行测试时处理 WebPack CSS 导入

当测试具有WebpackCSS导入的.js文件时,如import'./style.css',Mocha抛出一个语法错误(因为它试图导入和解析CSS文件作为JS)。有一个解决方案thathasalreadybeenpostedonStackOverflow,但它仅在您尚未将编译器与Mocha一起使用时解决。我正在使用Babel5。我尝试了以下方法,但似乎Mocha不支持传递多个编译器://npmtestscriptmocha./src/**/*Test.js--compilerscss:./scripts/mocha-webpack-compiler.jsjs:babel/registe

javascript - Mocha 的 before() 函数的目的是什么?

Mocha有几个“钩子(Hook)”可以在独立于测试用例本身的测试中运行辅助功能(清除数据库、创建模拟文件等)。但是,在before()的情况下(不是beforeEach(),我得到的那个),它看起来很多余。before()在当前套件中的所有测试之前运行逻辑一次,那么为什么我需要将它包装在一个函数中?以下两者之间没有明显的区别:describe('Something',function(){before(doSomePreTestLogic);//Testsahoy});和describe('Something',function(){doSomePreTestLogic();//Te