Questions tagged «mocha»

Mocha.js是在Node.js和浏览器上运行的功能丰富的JavaScript测试框架。




7
摩卡/柴的Expect.to.throw不能捕获抛出的错误
我在让Chai的expect.to.thrownode.js应用程序进行测试时遇到问题。测试会因抛出的错误而不断失败,但是如果我将测试用例包装在try和catch中并断言所捕获的错误,它将起作用。 难道expect.to.throw不喜欢的工作,我认为它应该还是什么? it('should throw an error if you try to get an undefined property', function (done) { var params = { a: 'test', b: 'test', c: 'test' }; var model = new TestModel(MOCK_REQUEST, params); // neither of these work expect(model.get('z')).to.throw('Property does not exist in model schema.'); expect(model.get('z')).to.throw(new Error('Property does not …



7
在摩卡测试中,调用异步函数时如何避免超时错误:超过2000ms的超时
在我的节点应用程序中,我正在使用mocha测试我的代码。使用mocha调用许多异步函数时,出现超时错误(Error: timeout of 2000ms exceeded.)。我该如何解决? var module = require('../lib/myModule'); var should = require('chai').should(); describe('Testing Module', function() { it('Save Data', function(done) { this.timeout(15000); var data = { a: 'aa', b: 'bb' }; module.save(data, function(err, res) { should.not.exist(err); done(); }); }); it('Get Data By Id', function(done) { var id = "28ca9"; module.get(id, …
200 node.js  mocha  chai 

7
如何访问和测试node.js模块中的内部(非导出)功能?
我试图弄清楚如何在nodejs(最好是用mocha或jasmine)中测试内部(即不导出)功能。而且我不知道! 假设我有一个类似的模块: function exported(i) { return notExported(i) + 1; } function notExported(i) { return i*2; } exports.exported = exported; 和以下测试(摩卡): var assert = require('assert'), test = require('../modules/core/test'); describe('test', function(){ describe('#exported(i)', function(){ it('should return (i*2)+1 for any given i', function(){ assert.equal(3, test.exported(1)); assert.equal(5, test.exported(2)); }); }); }); 有什么方法可以对notExported功能进行单元测试而不实际导出功能,因为它不是要公开的?

4
更改Mocha的默认超时
如果我们有一个单元测试文件my-spec.js并与mocha一起运行: mocha my-spec.js 默认超时为2000毫秒。可以使用命令行参数将其覆盖以进行部分测试: mocha my-spec.js --timeout 5000 是否可以全局更改所有测试的默认超时时间?即,当您调用时,默认超时值将不同于2000毫秒: mocha my-spec.js


4
我如何正确地用摩卡咖啡和柴测试诺言?
以下测试的行为异常: it('Should return the exchange rates for btc_ltc', function(done) { var pair = 'btc_ltc'; shapeshift.getRate(pair) .then(function(data){ expect(data.pair).to.equal(pair); expect(data.rate).to.have.length(400); done(); }) .catch(function(err){ //this should really be `.catch` for a failed request, but //instead it looks like chai is picking this up when a test fails done(err); }) }); 我应该如何正确处理被拒绝的承诺(并进行测试)? 我应该如何正确处理失败的测试(即:expect(data.rate).to.have.length(400);? 这是我正在测试的实现: …
148 node.js  promise  mocha  chai 

14
如何以编程方式跳过摩卡测试?
我有一个代码,其中某些测试在CI环境中始终会失败。我想根据环境条件禁用它们。 如何在运行时执行期间以编程方式跳过Mocha中的测试?
142 mocha 

9
永久违反:在“ Connect(SportsDatabase)”的上下文或道具中找不到“存储”
完整代码在这里:https : //gist.github.com/js08/0ec3d70dfda76d7e9fb4 你好 我有一个应用程序,其中根据构建环境显示了针对台式机和移动设备的不同模板。 我可以在需要隐藏移动模板的导航菜单的地方成功开发它。 现在,我能够编写一个测试用例,其中它通过原型获取所有值并正确呈现 但不确定如何在移动设备上编写单元测试用例时,不应呈现导航组件。 我尝试过,但是遇到错误...您能告诉我如何解决它。 提供下面的代码。 测试用例 import {expect} from 'chai'; import React from 'react'; import TestUtils from 'react-addons-test-utils'; import {SportsTopPortion} from '../../../src/components/sports-top-portion/sports-top-portion.jsx'; require('../../test-utils/dom'); describe('"sports-top-portion" Unit Tests', function() { let shallowRenderer = TestUtils.createRenderer(); let sportsContentContainerLayout ='mobile'; let sportsContentContainerProfile = {'exists': 'hasSidebar'}; let sportsContentContainerAuthExchange = {hasValidAccessToken: true}; …
142 reactjs  mocha  redux 

6
如何模拟ES6模块的导入?
我有以下ES6模块: network.js export function getDataFromServer() { return ... } widget.js import { getDataFromServer } from 'network.js'; export class Widget() { constructor() { getDataFromServer("dataForWidget") .then(data => this.render(data)); } render() { ... } } 我正在寻找一种使用的模拟实例测试Widget的方法getDataFromServer。如果<script>像Karma中那样使用单独的而不是ES6模块,则可以这样编写测试: describe("widget", function() { it("should do stuff", function() { let getDataFromServer = spyOn(window, "getDataFromServer").andReturn("mockData") let widget = new …

8
轻松清理sinon存根
有没有一种方法可以轻松重置所有可与Mocha的beforeEach块完美配合的s​​inon间谍模拟和存根。 我看到沙盒是一个选项,但是我看不到如何使用沙盒 beforeEach -> sinon.stub some, 'method' sinon.stub some, 'mother' afterEach -> # I want to avoid these lines some.method.restore() some.other.restore() it 'should call a some method and not other', -> some.method() assert.called some.method

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.