【问题标题】:Unit testing Javascript - Jasmine test fails although code is working as expected单元测试 Javascript - 尽管代码按预期工作,但 Jasmine 测试失败
【发布时间】:2017-02-02 13:53:17
【问题描述】:

我正在尝试开始使用 javascript 进行单元测试。我使用 jasmine framework 2.5.2 和 Netbeans 8.2 作为我的 IDE。

这是我要测试的简单代码:

var ListHandler = {

    "reverseList": function (inputList) {
        var list = inputList,
            reversedList = [],
            length = list.length;

        for (var i = 0; i < length; i++) {
            reversedList.push(list[length - i - 1]);
        }

        return reversedList;
    },

    "sumUp": function (inputList) {
        var count = 0;
        for (var i = 0; i < inputList.length; i++) {
            count += inputList[i];
        }

        return count;
    },

    "concatenate": function (inputList1, inputList2) {
        var result = inputList1.concat(inputList2);
        return result;
    }
}

这是我的测试:

describe("List Handler", function(){ 

   it("should return reversed List",function(){ 
      expect(ListHandler.reverseList([1,2,3])).toEqual([3,2,1]); 
   }); 

   it("should return sum of list values",function(){ 
      expect(ListHandler.sumUp([1,2,3])).toEqual(6); 
   }); 

   it("should return concatenated List", function(){
       expect(ListHandler.concatenate([1,2],["a","b"]).toEqual([1,2,"a","b"]));
   });
});

所以当我运行测试时,前两个方法通过了,但是最后一个方法“concatenate”出现错误:

TypeError: ListHandler.concatenate(...).toEqual 不是函数

但是,当我像alert(ListHandler.concatenate([1,2,5], ["a", "b", "c"])); 一样执行它时,它工作正常。谁能给我解释一下茉莉为什么抱怨?

【问题讨论】:

    标签: javascript unit-testing jasmine typeerror netbeans-8


    【解决方案1】:

    你有一个错误的右括号。

    试试;

      expect(ListHandler.concatenate([1,2],["a","b"])).toEqual([1,2,"a","b"]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      • 2014-05-09
      • 2016-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多