Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/felixge/node-fake
Test one thing at a time, fake the rest.
https://github.com/felixge/node-fake
Last synced: about 2 months ago
JSON representation
Test one thing at a time, fake the rest.
- Host: GitHub
- URL: https://github.com/felixge/node-fake
- Owner: felixge
- License: mit
- Created: 2011-01-29T10:21:50.000Z (almost 14 years ago)
- Default Branch: master
- Last Pushed: 2016-10-08T14:26:57.000Z (about 8 years ago)
- Last Synced: 2024-10-20T05:26:18.265Z (2 months ago)
- Language: JavaScript
- Homepage: http://debuggable.com/
- Size: 120 KB
- Stars: 28
- Watchers: 4
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: Readme.md
- License: License
Awesome Lists containing this project
README
**Current Status:** This library is ready for experimental usage.
# Fake [![Build Status](https://travis-ci.org/felixge/node-fake.png?branch=master)](https://travis-ci.org/felixge/node-fake)
Test one thing at a time, fake the rest.
## Tutorial
Set an expectation of a method call on an object:
``` javascript
var fake = require('fake')();
var object = {};fake.expect(object, 'method');
object.method();
```If the last `object.method()` call is not present, an exception will be thrown.
Depending on your [approach to TDD][mocksvsstubs], you may prefer to use
stubbing over mocking instead:[mocksvsstubs]: http://martinfowler.com/articles/mocksArentStubs.html
``` javascript
var fake = require('fake')();
var object = {};var objectMethodCall = fake.stub(object, 'method');
object.method();
assert.equals(objectMethodCall.calls.length, 1);
```## API
### fake.expect(object, method, [times, withArgs, andReturn | andHandle])
Set up an ordered expectation. Calling any other methods controlled by fake
before this expectation has been satisfied will throw an exception.### fake.expectAnytime(object, method, [times, withArgs, andReturn | andHandle])
Set up an unordered expectation. This will only throw an error if this
expectation is not verified before the process exits.### fake.stub(object, method, [times, withArgs, andReturn | andHandle])
Set up an optional expectation. This is useful for pre-filling return values
for functions, without caring if the function is ever called.## Todo
* Report non-matching anytime expectations if they are the closest match
* Move stacktrace into own module
* Useful error reporting
* Partial arguments matching
* Become self-testing
* Documentation
* Handle fake functions being claimed by multiple fakes
* NodeModuleScene / BrowserScriptScene?## License
Fake is released under the [MIT](License) license.