Comments (3)
@keithamus @meeber probably I can share my vision of chai spies:
Robust, easy to use library with nice chai integration
Few reasons why I don't like sinon
:
- too much terms with different methods (
stub
,spy
, whatever) - in order to use
sinon
you need to go through the whole docs and eventually you will not find answer to your question. - integrates badly with chai. in chai each word separated with dot but with sinon and sinon-chai you will write something like
expect(spy).to.have.been.calledWith
what looks odd in context of other specs
On the other hand chai-spies
something intuitive, you dont need much docs. Just few methods. And then it's easy to guess like:
const spy = chai.spy()
const returnFive = chai.spy.returns(5) // so, you write what you need: `spy returns 5` I haven't seen more obvious way to do it in js frameworks
const array = []
chai.spy.on(array, 'push')
expect(array.push).not.to.have.been.called()
const interface = chai.spy.object({ run: null })
expect(interface.run).not.to.have.been.called()
Also I think the main goal of this ticket is to change README file to highlight this.
Does it make sense?
from chai-spies.
@meeber do you have any thoughts on this?
from chai-spies.
I think it's clear that some people prefer chai-spies over sinon-chai, and that the features being requested recently can be implemented without sacrificing the qualities that make them prefer chai-spies. So, more power to this plugin!
from chai-spies.
Related Issues (20)
- Expect nested method to have been called
- ChaiSpies with Chai As Promiesed w/o using Timeout HOT 3
- TypeError: Cannot use 'in' operator to search for 'Date' in global HOT 1
- Bring back spy.reset() HOT 6
- export spy function as names export from chai-spies HOT 1
- An in-range update of mocha is breaking the build 🚨 HOT 16
- Restoring issue HOT 4
- Module '"chai-spies"' has no exported member 'spies'. HOT 3
- Incorrect type definitions for `spy.interface` HOT 1
- Feature: called with reports actual arguments
- `spy.on` doesn't work with nullish prototype
- expect(...).to.have.been.called.once is not a function HOT 2
- chai-spies.js needs a rebuild on master HOT 9
- to.have.been.called.with() throws an error HOT 3
- Switch logicalparadox refs to chaijs HOT 4
- expect(spy).to.have.been.called.with always true HOT 6
- An in-range update of mocha is breaking the build 🚨 HOT 3
- An in-range update of rollup-plugin-commonjs is breaking the build 🚨 HOT 4
- Cannot attach spy on the same function more than once HOT 2
- spy.interface documentation appears to be wrong HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chai-spies.