Buster.JS と Buster.JS 以外の為のAssertionsとExpectations。
buster.eventEmitterを継承している。
https://github.com/busterjs/referee で管理されている。
var buster = require("buster");
var assertions=require("buster-assertions");
console.log(buster.assertions === assertions); // => true
var assert = assertions.assert;
var refute = assertions.refute;
assertions.on("failure", function (err) {
console.log("failure : " + err.message);
});
try{
assert.equals(42, 42);
refute.equals(42, 43);
assert.equals(42, 43); // Exceptionが発生する。
}catch(e){
console.log(e) // { [AssertionError: [assert.equals] 42 expected to be equal to 43] name: 'AssertionError' }
}
assertions.on("failure", function (err) {
console.log("failure : " + err.message);
});
try{
assert.equals(42, 43); // Exceptionが発生する。
// failure : [assert.equals] 42 expected to be equal to 43
}catch(e){
}
/**
* buster.assert.isString上書き処理。
*/
var class2type = {};
function makeClass2Type(){
function setObjectArray(name, index, array) {
class2type[ "[object " + name + "]" ] = name.toLowerCase();
}
"Boolean Number String Function Array Date RegExp Object".split(" ").forEach(setObjectArray);
}
ba.add("isString", {
assert: function (actual) {
return class2type[toString.call(actual)] == "string";
},
assertMessage: "Expected ${0} (${actualType}) to be string",
refuteMessage: "Expected not to be string",
expectation: "toBeString"
});