尝试将其用作静态方法时,未定义方法

时间:2017-07-18 10:44:21

标签: javascript protractor

我试图使用静态方法在外部使用它。

utils文件:



'use strict'
function utils(){}
utils.staticMethod1 = function(){
alert("foo");
};
module.exports =  utils();



 主文件:



'use strict;'
     let HomePage = require('../page/home_page.js');
let utilsPage = require('../utils/utils.js');
    describe("login to website",function(){
         let employeeId;
         let employeeBday;
         let home = new HomePage();
         
      beforeEach(function(){
           
            browser.driver.get("http://foo.com/");     
        });
       
            it("should succees picking a present",function(){
                utilsPage.staticMethod1();
        });
    });




但我一直收到错误说:Failed: utils is not defined

1 个答案:

答案 0 :(得分:1)

您的页面文件:

'use strict';

var Utils = function(){
   this.methodTest = function(){
      console.log("Something"); //alert(this);
   };
};

module.exports = Utils;

您的规范文件:

'use strict;'

let Utils = require('../page/utils.Page.js');

describe("login to website",function(){
     let employeeId;
     let employeeBday;
     let utils = new Utils();

     beforeEach(function(){ 
         browser.driver.get("http://foo.com/");     
     });

     it("should success picking a present",function(){
         utils.methodTest();
         expect(browser.getTitle()).toEqual('SomethingToGetAnError');
     });

});

你应该看一下在量角器中使用静态方法,它们会引导你走向粗糙。

Explanation

Better explanation about Page Objects Pattern in testing