As we learned in Unit Tested, when you require that developers — especially those "certain" developers — write more unit tests, you'll get exactly what you ask for: more unit tests.
Johnny Biggg, whose company recently mandated this, knows this all too well. Although the ratio of testing-to-functional code went up, the quality (or lack thereof) remained about the same. Well, that is, unless you consider how often arrays can fail in JavaScript.
function doTest()
{
var oTest = new Object()
var oTest2 = new Object()
var oFn1 = function(b){alert("fn1: " + b)}
var oFn2 = function(c){alert("fn2: " + c)}
var oFn3 = function(d){alert("fn3: " + d)}
var a = new Array()
a.push("hello")
a.push("goodbye")
a.push(1)
a.push(2)
a.push(true)
a.push(oTest)
a.push(oTest2)
a.push(oFn1)
a.push(oFn2)
if (!(a.contains("hello") && a.contains("goodbye")))
{
alert("failed test: string not found, but should be")
return false
}
if (a.contains("byebye"))
{
alert("failed test: string found, but should not be")
return false
}
if (!(a.contains(1) && a.contains(2)))
{
alert("failed test: number not found, but should be")
return false
}
if (a.contains(3))
{
alert("failed test: number found, but should not be")
return false
}
if (!(a.contains(true)))
{
alert("failed test: boolean not found, but should be")
return false
}
if (a.contains(false))
{
alert("failed test: boolean found, but should not be")
return false
}
if (!(a.contains(oTest) && a.contains(oTest2)))
{
alert("failed test: object not found, but should be")
return false
}
if (a.contains(new Object()))
{
alert("failed test: object found, but should not be")
return false
}
if (!(a.contains(oFn1) && a.contains(oFn2)))
{
alert("failed test: function not found, but should be")
return false
}
if (a.contains(oFn3))
{
alert("failed test: function found, but should not be")
return false
}
if (a.indexOf("hello")!=0)
{
alert("failed test: index not correct for string")
return false
}
if (a.indexOf(1)!=2)
{
alert("failed test: index not correct for number")
return false
}
if (a.indexOf(true)!=4)
{
alert("failed test: index not correct for boolean")
return false
}
if (a.indexOf(oTest)!=5)
{
alert("failed test: index not correct for object")
return false
}
if (a.indexOf(oFn1)!=7)
{
alert("failed test: index not correct for function")
return false
}
alert("passed all tests")
}