在我的ANGULAR 2应用程序中有一项服务;包含静态引用属性。
export class AppConfigService {
static settings: IAppConfig;
constructor(private http: HttpClient) {}
load() {
const jsonFile = `assets/config/config.${environment.name}.json`;
return new Promise<void>((resolve, reject) => {
this.http.get(jsonFile).toPromise().then((response: IAppConfig) => {
AppConfigService.settings = response as IAppConfig;
resolve();
}).catch((response: any) => {
reject(`Could not load file '${jsonFile}': ${JSON.stringify(response)}`);
});
});
}
}
这是我要在ts文件中测试的方法的示例实现。
export class SlideImageComponent implements OnInit {
......
readonly baseUrl = AppConfigService.settings.serverApiUrl;
......
如何为测试用例模拟静态变量中的数据?每当我尝试以useClass / useValue格式模拟数据时,都会得到AppConfigService.settings.serverApiUrl的未定义值。
答案 0 :(得分:0)
Typescript静态变量在JS中不存在。
相反,它们绑定到类构造函数。
尝试使用此:
AppConfigService.constructor.settings.serverApiUrl