我创建了一个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();
});
});
});
答案 0 :(得分:0)
由于您在firstTest
内创建了SecondTestClass
对象,因此您无需在规范中为FirstTestClass
创建重复对象。您可以在规范中直接使用secondTest.firstTest.calculateTotalPrice()
。因为您的规范文件中的firstTest
对象和firstTest
中的SecondTestClass
对象在此处的范围不同。