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