Javascript 单元测试如何访问对象属性

Javascript 单元测试如何访问对象属性,javascript,angularjs,jasmine,karma-jasmine,Javascript,Angularjs,Jasmine,Karma Jasmine,我有一个简单的角度服务: app.service('myService', function() { this.getMsg = function (status, data) { var errMsg = ''; if (status.toString()[0] == 4) { if ((data.message.indexOf("3 tries left") > -1) || (data.message.index

我有一个简单的角度服务:

app.service('myService', function() {

    this.getMsg = function (status, data) {

        var errMsg = '';

        if (status.toString()[0] == 4) {

            if ((data.message.indexOf("3 tries left") > -1) || (data.message.indexOf("2 tries left")) > -1){
                errMsg = "Opps, try later";
            }
            else {
                errMsg = "Please try again.";
            }
        }

        if (status.toString()[0] == 5) {
            errMsg = "Under Construction";
        }

        return errMsg;
    };
});
我编写了一个测试,确保我的
getMsg
函数存在,但是当我尝试测试该函数时,我得到一个错误:

TypeError:data.message未定义

测试:


编写函数时预期的
getMsg
函数的行为方式与测试函数时预期的行为方式之间存在差异

编写时,您希望第二个参数是一个对象,该对象具有
message
属性,该属性是一个字符串

测试时,您希望第二个参数是字符串

如果功能正确,则应更改此行

var result = myService.getMsg(400, "some text to test");


为什么这一点被否决了?我已经解释了这个问题,并提供了代码。有足够的代码在几分钟内证明答案,正如@Tibos在下面强调的那样。
var result = myService.getMsg(400, "some text to test");
var result = myService.getMsg(400, { message : "some text to test"});