2017-04-20 56 views
0

目前我正在使用量角器和使用頁面對象,所以有一個文件可以獲取變量中元素的值,但我需要在另一個文件中調用該值。在另一個文件中使用變量的值

vehiclePage.js

/*jshint esversion: 6 */ 

var basePage = require('./basePage.js'); 
var homePage = require('./homePage.js'); 

var VehiclePage = function() { 

    this.storeVehicleData = function() { 

     this.pessengersRuntValue = element(by.id('preview_ocupantes_runt')).getText(); 
    }; 
}; 

VehiclePage.prototype = basePage; // extend basePage... 

module.exports = new VehiclePage(); 

現在我需要使用上述變量的值在另一個文件中

checkoutPage.js

/*jshint esversion: 6 */ 

var basePage = require('./basePage.js'); 
var homePage = require('./homePage.js'); 

var CheckoutPage = function() { 

    this.getRuntValue = element(by.css('.mb10')); 

    this.compareValues = function() { 

     expect(this.getRuntValue.getText()).toContain(this.pessengersRuntValue); 
    }; 

}; 

CheckoutPage.prototype = basePage; // extend basePage... 

module.exports = new CheckoutPage(); 

我怎麼能讓它起作用?

回答

0

做到這一點的一種方法是將狀態對象傳遞給兩個頁面。

var VehiclePage = require('./vehiclePage.js'); 
var CheckoutPage = require('./checkoutPage.js'); 

class StateStorage { 
    constructor(){ 
    this.savedVariable = null; 
    } 
} 

var state = new StateStorage(); 
var vehiclePage = new VehiclePage(state); 
var checkoutPage = new CheckoutPage(state); 

然後你可以操縱和訪問這兩個新頁面的狀態。

1

如果您遵循頁面對象設計模式,我會說測試不應該在頁面對象上。我會寫這樣的東西。

VehiclePage.js

var VehiclePage = function(){ 
    // if this is a browser testing something like this 
    browser.get('/vehicle'); 
}; 

VehiclePage.prototype = Object.create({}, { 
    runt: { 
    get: function(){ 
     return element(by.id('preview_ocupantes_runt')); 
    } 
    } 
}); 
module.export = VehiclePage; 

CheckOutPage.js

var CheckOutPage = function(){ 
    // if this is a browser testing something like this 
    browser.get('/checkout'); 
}; 

CheckOutPage.prototype = Object.create({}, { 
    runt: { 
    get: function(){ 
     return element(by.css('.mb10')); 
    } 
    } 
}); 
module.export = CheckOutPage; 

TheTest.js

var VehiclePage = require('VehiclePage'); 
var CheckOutPage = require('CheckOutPage'); 


describe('testing something',() => { 
    var vehicle = new VehiclePage(); 
    var checkout = new CheckOutPage(); 

    it('should contain',() => { 
    expect(checkout.runt.getText()).toContains(vehicle.runt.getText()); 
    }); 

}); 
相關問題