var object = function(){new Checkbox();};
assert.throws(object)
Что тут вообще происходит? Вы передаете тело функции в assert, вы же ничего не вызываете и ни с чем не сравниваете.
Если хотите предотвратить действие, то пишите в блоке try catch.
По хорошему лучше создавать фабричный обьект, а потом вызывать для него initialize(...params) в котором уже делать нужную проверку. Зачем вам эта имитация работы конструкторов.
upd. А еще вы должны врубиться, что никаких конструкоторов нет, это просто вызов функции в котором вы можете делать что захотите:
var Construct = function(a, b) {
var error = {};
error.message = "wrong params";
if (true) { return error }; //делаете тут проверку
// а тут дальше пишите ваш "конструктор"
};
var a = new Construct(); // Object {message: "wrong params"}