在不同的类中使用时,量角器测试将全局变量返回为null

时间:2017-09-27 04:33:29

标签: typescript jasmine protractor

我创建了一个typescript类并声明了一个全局变量,并在同一个类的方法中使用它,如下所示:

第一个打字稿类:

export class FirstTestDetails {
    //declared a global object
    baseProductDetails = {
        baseQty: null,
        basePrice: null,
    };

    //function
    public async calculateTotalPrice() {
        await this.txtBaseQty.getAttribute(‘value’).then((baseQty) => {
            this.baseProductDetails.baseQty = baseQty;
            console.log(‘Base Qty ==>’ + baseProductDetails.baseQty);
        }
    }
}

在上面的函数中,控制台为全局变量(this.baseProductDetails.baseQty)分配正确的值。但是,当我尝试在另一个类中使用相同的变量时,它返回'null'值。请指教,

第二个打字稿类:

Import {FirstTestDetails} from ‘../pages/firsttest.page;

const firstTest = new FirstTestDetails();
export class SecondTestDetails {
    //some locators
    -- --- -----
    //function
    async validateQtyFromFirstTest() {
        await this.txtBaseQty.getAttribute(‘value’).then((baseQty) => {
            if (firstTest.baseProductDetails.baseQty === baseQty) {
                console.log(‘Quantities match between First and Second classes);
            }
        });
    } 
}

但是,我收到'firstTest.baseProductDetails.baseQty'变量的'null'值,而不是在FirstTestClass函数中打印的实际值。请告知是否有任何方法可以读取第二类中第一类的全局变量。提前谢谢!

另外请注意,仅供参考,我的实际测试看起来像这样:

import { SecondTestClass } from '../pages/xxxxxxx;

const firstTest = new FirstTestClass();
const secondTest = new SecondTestClass();
describe(‘Qty check’, () => {
    describe(check qty in first test', () => {
        it('As User1 - check qty in first test', async () => {
            await firstTest.calculateTotalPrice();
            expect(xxxxx).toBeTruthy();
        });
        it('As User1 - compare qty in second test with first test', async () => {
            await secondTest.validateQtyFromFirstTest();
            expect(xxxxx).toBeTruthy();
        });
    });
});

1 个答案:

答案 0 :(得分:0)

由于您在firstTest内创建了SecondTestClass对象,因此您无需在规范中为FirstTestClass创建重复对象。您可以在规范中直接使用secondTest.firstTest.calculateTotalPrice()。因为您的规范文件中的firstTest对象和firstTest中的SecondTestClass对象在此处的范围不同。