prendre
v0.0.1
Published
Test invariants in development enviroment for peace of mind.
Readme
Prendre
Test invariants for peace of mind. Encourages programming with assertions by skip them in production. Inspired by unassert project.
See: "unassert - encourage reliable programming by writing assertions in production" -- talk at NodeFest 2015, and "One more thing..." in talk at NodeFest 2016, titled "From Library to Tool - power-assert as a General Purpose Assertion Enhancement Tool"
API
// inject global assume function which do nothing in production.
require('prendre');
// throw exception but do nothing in production.
assume(1, 'is', 2);Benchmark
Suites
require("../index");
function add(a, b) {
return a + b;
}
function add_assume(a, b) {
assume(a, "is", 1);
assume(b, "is", 2);
return a + b;
}
module.exports = {
"without prendre": function() {
add(1, 2);
},
"with prendre": {
onError() {},
fn: function() {
add_assume(1, 2);
}
}
};Run without NODE_ENV=production
node benchmark/index.js
without prendre x 76,860,933 ops/sec ±1.31% (87 runs sampled)
with prendre x 29,922,554 ops/sec ±0.96% (83 runs sampled)
Fastest is without prendreRun with NODE_ENV=production
NODE_ENV=production node benchmark/index.js
without prendre x 74,486,295 ops/sec ±1.71% (87 runs sampled)
with prendre x 73,800,204 ops/sec ±1.67% (81 runs sampled)
Fastest is without prendre,with prendre