简体   繁体   English

单元测试Javascript-Jasmine测试失败,尽管代码按预期工作

[英]Unit testing Javascript - Jasmine test fails although code is working as expected

I'm trying to get started with unit testing with javascript. 我正在尝试使用javascript进行单元测试。 I'm using jasmine framework 2.5.2 and Netbeans 8.2 as my IDE. 我将茉莉花框架2.5.2和Netbeans 8.2用作我的IDE。

This is the simple code i want to test: 这是我要测试的简单代码:

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;
    }
}

This is my test: 这是我的测试:

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"]));
   });
});

So when i run the test, the first two methods pass, but i get an error for the last method "concenate": 因此,当我运行测试时,前两个方法通过了,但是最后一个方法“ conconate”却出现了错误:

TypeError: ListHandler.concatenate(...).toEqual is not a function TypeError:ListHandler.concatenate(...)。toEqual不是函数

However, when i just execute it like alert(ListHandler.concatenate([1,2,5], ["a", "b", "c"])); 但是,当我像alert(ListHandler.concatenate([1,2,5], ["a", "b", "c"]));那样执行它时alert(ListHandler.concatenate([1,2,5], ["a", "b", "c"])); it works fine. 它工作正常。 Can someone explain to me why jasmine complains? 有人可以向我解释为什么茉莉花会抱怨吗?

You have a misplaced closing paranthesis. 您的放错了关闭状态。

Try; 尝试;

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM