草庐IT

chai-enzyme

全部标签

javascript - 使用 Jest 和 Enzyme 测试 react-router v4

我有一个简单的应用程序,他们使用react-routerv4constApp=()=>(Home}/>Profile}/>Help}/>);和测试jest.dontMock('../App');importReactfrom'react';import{MemoryRouter}from'react-router-dom';import{shallow}from'enzyme';importAppfrom'../App';describe('',()=>{constwrapper=shallow();console.log(wrapper.html());it('rendersasta

javascript - Chai 期待 : an array to contain an object with at least these properties and values

我正在尝试验证像这样的对象数组:[{a:1,b:2,c:3},{a:4,b:5,c:6},...]至少包含一个同时具有{a:1}和{c:3}的对象:我想我可以用chai-things做到这一点,但我不知道对象的所有属性都可以使用expect(array).to.include.something.that.deep.equals({??,a:1,c:3});和contain.a.thing.with.property不适用于多个属性:/测试此类内容的最佳方法是什么? 最佳答案 所需的解决方案似乎是这样的:expect(array).

javascript - 诸如 Chai 之类的断言库如何在不强制调用函数的情况下工作?

在Chai,您可以执行以下操作:expect({}).to.exist;exist不是函数调用,但这在测试框架中仍然有效。相反的(expect({}).to.not.exist)会导致测试失败,但同样,exist不是函数调用。在不让我调用函数的情况下,这些断言如何工作?事实上,如果我尝试说expect({}).to.exist()测试失败,因为exist不是一个函数。 最佳答案 我想出来了(或者至少,我想出了一个方法)。使用JavaScriptgetters:varthrows={geta(){thrownewError('a');

javascript - React Enzyme - 测试 `componentDidMount` 异步调用

每个人。在componentDidMount中发生异步调用后,我在测试状态更新时遇到了奇怪的问题。这是我的组件代码:'usestrict';importReactfrom'react';importUserComponentfrom'./userComponent';constrequest=require('request');classUsersListComponentextendsReact.Component{constructor(props){super(props);this.state={usersList:[]};}componentDidMount(){reque

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 和 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 - chai expect 函数是如何工作的?

从chai的api你有这样的代码:.existAssertsthatthetargetisneithernullnorundefined.varfoo='hi',bar=null,baz;expect(foo).to.exist;expect(bar).to.not.exist;expect(baz).to.not.exist;存在部分如何工作?expect函数返回一个对象,然后对“to”对象进行简单的属性查找。那只是一个属性评估,不是吗?唯一对我有意义的是exist属性是否是getter方法。怎么了? 最佳答案 chai公开了一个

javascript - 使用 enzyme 测试对 React 组件状态的更改并监视实例方法

我正在开发一个包装器组件,以便在React中顺利加载图像。我将enzyme与mocha、chai和sinon一起使用来对我的组件进行单元测试。在这里的测试中,我试图测试:组件的状态在图像加载后更新调用了组件上的onLoad实例方法constwrapper=shallow();constonLoad=wrapper.find('img').props().onLoad;constonLoadSpy=sinon.spy(onLoad);wrapper.update();conststatus=wrapper.state().status;expect(onLoadSpy).to.have.

javascript - Chai .js : Object contains/includes

Chai有一个include方法。我想测试一个对象是否包含另一个对象。例如:varorigin={name:"John",otherObj:{title:"Example"}}我想使用Chai来测试这个对象是否包含以下内容(它确实包含)varmatch={otherObj:{title:"Example"}}这样做似乎不起作用:origin.should.include(match) 最佳答案 嘿,刚刚发布了chai-subset。检查一下:https://www.npmjs.org/package/chai-subset这应该适合

javascript - 如何使用 Jest 和/或 Enzyme 获取嵌套在 React 组件中的元素的属性?

我想测试一下图像是否已正确加载到React应用程序中。我决定检查嵌套在React组件中的img元素的src属性。我想使用Jest测试框架,如果需要,还想使用Enzyme测试实用程序。通过深入研究浅层React测试组件的Object.keys,我得出了以下解决方案。我不确定的行用星号表示。importReactfrom'react';import{shallow}from'enzyme';importAppfrom'./App';it('shouldhavethelogoimage',()=>{constapp=shallow();constimg=app.find('img');con