Affix - Binding made more fluent
Intro
A simple utility module to make binding more fluent, with some helpers for testing.
Why?
(1) It can be easy to miss a bind call:
function () {
.... lots of code ....
}.bind(context);
(2) Given the typical fluent testing framework:
it(<descriptionStr>, <workFn>);
It can be useful to bind your workFn
functions to your fixture data. Affix lets you use one fixture object using the descriptionStr
as a cursor
Thus, without doing anything drastic to the test structure, you can wire fixtures at test definition time. It was originally used for keyhole refactoring of some large test files, thus it is super-simple and non-invasive.
Usage
var fixtures = {
'should be the answer to everything': {
inp: 40 + 2,
out: 42
}
};
var should = require("should");
var affix = require("affix")(fixtures);
describe( 'The answer', function () {
it( affix.set( 'should be the answer to everything'),
affix.bind( function () {
var inp = this.fixture.inp;
var out = this.fixture.out;
inp.should.be.exactly( out );
})
);
});