2017-05-27 5 views
0

私はJavaを使った自動化フレームワーク開発から分度器& javascriptに移りました。私の分度器のフレームワークでは、他のスクリーンjsファイルから呼び出すことができるグローバル関数を持つベーススクリーンjsファイルを作成する必要があります。次の例を参照してください。 login.jsの継承をすべてbase.jsから継承させるにはlogin.jsから直接base.js関数を呼び出すときにloginTest.jsのテストが機能するようにしますか?分度器のベースjsファイルから継承関数を継承する方法は?

base.js

var base= function(){ 

    var that = { 
     navigateToLogin: function(url){ 
     browser.get(url); 
     browser.driver.manage().window().maximize(); 
     return require('login.js'); 
     }, 

     click: function(element, page){ 
      element.click(); 
      console.log('LOG: Clicked on element ' + element); 
      return that || page; 
     }, 

     insert: function(element, text){ 
      element.clear().then(function() { 
       element.sendKeys(text); 
       console.log('LOG: Insert text: ' +text); 
      }); 
      return that; 
     }, 
    }; 
    return that; 
}; 
module.exports = new base(); 

login.js

var login = function(){ 

    var that = { 

     func1: function() { 
     // do something 
         return that 
     }, 

     func2: function() { 
      // do something 

         return that; 
     }, 
      }; 
    return that; 
}; 
module.exports = new login(); 

loginTests.js

describe('Login tests - ', function() { 

    var loginPage = require('login.js'); 

     describe('Success login: ', function() { 

     beforeEach(function() { 
      loginPage.navigateToLogin(“http://login.url”); 
        }); 

     it("Success login as admin",function(){ 
      loginPage.insert(“element(by.name("username"))”,”[email protected]”l) 
          .insert(“element(by.name("password"))”,”12345”)        
         .click(“element(by.name("loginButton"))”,“home.js”); 
        }); 
    }); 
}); 

答えて

1

あなたがいない使用している場合

class BasePage { 
    constructor() { 

    } 

    open() { 
     browser.get(url); 
     browser.driver.manage().window().maximize(); 
    } 
} 
exports = BasePage 

loginpage.js:あなたのテストで続いて

class LoginPage extends BasePage { 
    constructor() { 
     super() 
    } 

    login(username, password) { 
     //do your login stuff here 
    } 
} 

exports = LoginPage 

basepage.js - de.js> 4(5以上)ES6クラスを使用するようにしてください:

let LoginPage = require('loginpage.js'); 
describe('Login tests - ', function() { 
    let loginPage = new LoginPage() 

    beforeEach(function() { 
     loginPage.open('/login') 
    }) 

    it("Success login as admin", function() { 
     loginPage.login('admin', '123456') 
    }) 
}) 
+0

私はノード4.4.3になりました。ノード5に更新する必要がありますか? – shaynl

+0

最新バージョンへのアップデート(今は8.0.0と思う) – Xotabu4