如何用框架编写单元测试?

时间:2013-05-03 14:06:14

标签: javascript testing

使用纯JavaScript我想对这个基本功能进行单元测试:

NS.isType = function (type, obj) {
    if (obj.constructor && obj.constructor.name) {
        return obj.constructor.name === type;
    }
    return toString.call(obj) === '[object ' + type + ']';
};

我想开始对我的代码进行单元测试,我希望用JavaScript来完成框架。更重要的是,我希望了解单元测试的概念,而不是阅读整本书。后来我计划阅读这个新的O'Reilly book, (2013),它专注于使用框架进行单元测试。

如何使用JavaScript w / out库对上述方法进行单元测试?

1 个答案:

答案 0 :(得分:1)

简而言之,单元测试是关于红绿红绿

首先,你要测试你期望你的功能会做什么。当你运行测试时它会失败,因为你还没有实现它(RED)

现在你在你的函数中实现它并再次运行测试,现在测试将通过(绿色)。

现在你再次改变你的测试,确保它再次失败(只是为了检查你的测试是否一直没有通过)(红色)

更改它以便它通过。

你将使用断言很多,这里有一个小例子:

function aPlusB(A,B){
  return A+B;
}
//part of your test suite:
var tests=[];
function assertEqual(a,b,message){
  tests.push({
    pass:a===b,
    message:message
  });
}
assertEqual(aPlusB(1,2),3,"Make sure 1 plus 2 equals 3");
assertThrows(aPlusB("hello",7),"Passing a string as one of the parameters should throw an error");