0

使用纯 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 的这本新书(2013 年),该书侧重于使用框架进行单元测试。

如何仅使用带有库的 JavaScript 对上述方法进行单元测试?

4

1 回答 1

1

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

首先,您编写一个您期望您的函数会做什么的测试。当你运行测试时它会失败,因为你还没有实现它(红色)

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

现在您再次在测试中进行一些更改,以确保它会再次失败(只是为了检查您的测试是否始终通过)(红色)

把它改回来,这样它就会通过。

你会经常使用断言,这里有一个小例子:

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");
于 2013-05-03T14:16:01.990 回答