首页 > 解决方案 > Jasmine 全局变量初始化

问题描述

我正在使用 jasmine 编写 Angular 组件单元测试。我们有静态变量的类,这些变量在应用程序加载时初始化。目前,我们正在使用这些变量的组件的单元测试的 beforeAll 中初始化这些静态变量。

在所有单元测试文件中调用相同的初始化函数似乎是多余的。

有什么方法可以在茉莉花单元测试开始期间全局初始化这些静态变量,这些变量可用于所有单元测试套件?

目前我们正在像这样初始化这些静态变量:

describe(('mycomponent'), () => {
  beforeAll(()=>{
   // call to initialize function
  });
});

标签: angularunit-testingjasmineangular-unit-test

解决方案


在我看来,你应该用 service 封装全局变量,并在你的组件中使用这个包装器服务。通过这种方式,您可以轻松地模拟此包装服务。

例如:

class GlobalVariableService {
  public getXxx() {
    return window.Xxx;
  }
}

推荐阅读