angularjs - 如何在 Jasmine 中模拟外部枚举设置
问题描述
我正在用 Jasmine 测试 AngularJS 服务。该服务使用来自另一个模块的枚举作为参数调用另一个服务中的函数。
public getSavedColumns = (): ng.IPromise<GridColumn[]> => {
return this.productSettingsService.readProjectSetting(
psfc.ApplicationId.Calculator, this.getColumnStorageProperty())
.then(response => { /**/ });
};
psfc.ApplicationId
是另一个模块中的枚举:
export enum ApplicationId {
Calculator = 2636
}
Jasmine 测试失败并出现以下错误:
TypeError 'undefined' 不是对象(评估 'psfc.ApplicationId.Calculator')
我以为我可以在测试中模拟枚举,但这不会改变结果。
beforeEach(() => {
angular.mock.module('pw_psfc',
$provide => {
$provide.constant('psfc.ApplicationId.Calculator', 0);
});
});
解决方案
我能够通过在业力配置中包含带有导出枚举的文件来解决我的问题。五个月是一个相当缓慢的学习曲线,但我快到了!=~)
推荐阅读
- flutter - “bool”类没有实例方法“-”。接收者:true 尝试调用:-(false)
- syntax - 当我想引用枚举的变体时,有没有办法停止重复枚举的名称?
- node.js - Angular 和 Node + Express
- python - QLabel 正确定位文本轮廓
- html - 如何让孩子不继承动画属性
- android - 无法加载测试广告 Android
- linux - 搜索和重命名目录和子目录中的所有文件
- r - 排队包没有读取任何功能?
- android - ّ片段协程错误:无法在主线程上访问数据库,因为它可能会长时间锁定 UI
- jquery - 如何使用 Jquery 更新特定的 DataTable 单元格