Adding jasmine-sinon #1

Merged
baphled merged 2 commits from master into master 2011-12-15 13:20:55 +00:00
2 changed files with 46 additions and 0 deletions

View File

@ -7,6 +7,7 @@ Works in jasmine-headless-webkit versions that support Sprockets.
It comes with the libraries I need: It comes with the libraries I need:
* [jasmine-jquery](https://github.com/velesin/jasmine-jquery) 1.3.1 * [jasmine-jquery](https://github.com/velesin/jasmine-jquery) 1.3.1
* [jasmine-sinon](https://github.com/froots/jasmine-sinon) 0.1.0
* [Sinon.js](http://sinonjs.org/) 1.2.0 * [Sinon.js](http://sinonjs.org/) 1.2.0
## How to use it ## How to use it
@ -16,6 +17,7 @@ It's Sprockets vendored gem goodness, so at the top of your `spec_helper`:
``` coffee ``` coffee
#= require jasmine-jquery #= require jasmine-jquery
#= require sinon #= require sinon
#= require jasmine-sinon
...make cool code... ...make cool code...
``` ```

View File

@ -0,0 +1,44 @@
/**
jasmine-sinon.js 0.1.0
**/
(function(global) {
var spyMatchers = "called calledOnce calledTwice calledThrice calledBefore calledAfter calledOn alwaysCalledOn calledWith alwaysCalledWith calledWithExactly alwaysCalledWithExactly".split(" "),
i = spyMatchers.length,
spyMatcherHash = {},
unusualMatchers = {
"returned": "toHaveReturned",
"alwaysReturned": "toHaveAlwaysReturned"
},
getMatcherFunction = function(sinonName) {
return function() {
var sinonProperty = this.actual[sinonName];
return (typeof sinonProperty === 'function') ? sinonProperty.apply(this.actual, arguments) : sinonProperty;
};
};
while(i--) {
var sinonName = spyMatchers[i],
matcherName = "toHaveBeen" + sinonName.charAt(0).toUpperCase() + sinonName.slice(1);
spyMatcherHash[matcherName] = getMatcherFunction(sinonName);
};
for (var j in unusualMatchers) {
spyMatcherHash[unusualMatchers[j]] = getMatcherFunction(j);
}
global.sinonJasmine = {
getMatchers: function() {
return spyMatcherHash;
}
};
})(window);
beforeEach(function() {
this.addMatchers(sinonJasmine.getMatchers());
});