met*_*ard 4 javascript jasmine typescript angular
我有一个服务,我从一个从CDN获取的js文件加载一个变量(读取没有typedef)
因此我为它创建了一个声明:
declare const externalValue: string;
@Injectable()
export class Service {
...
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但是当我想测试我的服务时,我收到以下错误消息:
ReferenceError:未定义externalValue
这是完全合理的,因为尚未调用加载文件的index.html.
我现在的问题是如何在测试时模拟这个值?
您可以使用window对象使值可用:
window['externalValue'] = 'woww';
Run Code Online (Sandbox Code Playgroud)
如果你有严格的打字稿,首先必须扩展全局窗口对象.在global这个定义中是不是真的有必要,但如果你把它在被加载为每个文件的文件(像polyfills.ts),你只需要一次申报.
declare global { interface Window { externalValue: string; } }
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
window.externalValue = 'even more wow';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1959 次 |
| 最近记录: |