Jasmine代码抛出错误对象未定义

时间:2016-12-19 11:52:00

标签: javascript jasmine

我正在编写用于测试以下代码的茉莉花测试代码

  validatePage : function(siteIndex) {
    var errorList = '';
    var siteVal = solution.CommonObjects.theSolution.sites[siteIndex];
  }

对siteval值的进一步操纵

我写了以下一段代码

describe("order handoff site test suites",function(){
beforeEach(function(){
var solution =
{
 CommonObjects:
 {
  theSolution:
   {
    sites:
    [
     {
      floor:""
     }
    ]
   }
}

}  });

var ordrHandoffSites = new orderHandoffSite();
it("expect true to be true",function(){
console.log("AHV55" + typeof(solution.CommonObjects.theSolution.sites    [0].floor));

ordrHandoffSites.validatePage(1); 
})

此代码使用require.js,因此ordrHandoffSites只是包含validatepage代码的文件的对象 当我检查控制台日志时,它显示了一个字符串值,但代码正在打破

var siteVal = solution.CommonObjects.theSolution.sites[siteIndex];

说不能阅读财产' floor'未定义的

1 个答案:

答案 0 :(得分:0)

<强>观察:

  • 您的solution对象的范围仅限于beforeEach 函数,因此返回undefined错误。
  • 我嘲笑require.js&amp;使用虚拟对象代替 ordrHandoffSites但它(使用require.js)应该主要表现相同。在action here

    中查看
    var solution;
    var testObj = {
      validatePage: function(siteIndex) {
        var errorList = '';
        var siteVal = solution.CommonObjects.theSolution.sites[siteIndex];
      }
    };
    
    describe("order handoff site test suites", function() {
      beforeEach(function() {
        solution = {
          CommonObjects: {
            theSolution: {
              sites: [{
                floor: ""
              }]
            }
          }
        }
      });
      it("expect true to be true", function() {
        console.log("AHV55==> " + typeof(solution.CommonObjects.theSolution.sites[0].floor));
        testObj.validatePage(1);
        expect(true).toBe(true);
      });
    
    });