为什么按照 Angular 官网教程执行简单的测试代码,会遇到expect is not defined的错误消息
Angular 官网的代码:
https://angular.io/api/core/Injectable#providedin
我把这段代码原封不动地拷贝到我的 app.module.ts ,然后执行:
@Injectable()
class UsefulService {}@Injectable()
class NeedsService {constructor(public service: UsefulService) { }
}const injector = Injector.create({providers:[{ provide: NeedsService, deps: [UsefulService] }, { provide: UsefulService, deps: [] }]
});
expect(injector.get(NeedsService).service instanceof UsefulService).toBe(true);
遇到下面的错误消息:
Uncaught ReferenceError: expect is not defined
奇怪的是,Visual Studio Code 里并没有任何语法错误,而且 expect 的定义也能识别到:
然而运行时,expect 的值无法识别:not available
后来我在 medium 上一篇论文里找到了答案:
https://medium.com/@danielrob/understand-angular-testing-with-jasmine-karma-8d1384962011
realise the difference between the browser environment during a karma run vs that when it is being served by an http server
Karma 运行在浏览器环境上和运行在 HTTP 服务器(server side)是有所差异的。
当运行在浏览器里时,describe,it,expect 这些函数均无法访问。
而运行在服务器上时,能正常访问:
During a karma run context, the window object has been populated with jasmine and angular-mock functions. Angular-mock came from our ‘karma.conf’ file list. Now that we understand these methods are being exposed on the window object, and where they come from, we are fit use them.
在 Karma 运行上下文,jasmine 和 Angular-mock 相关的函数,被生成并保存在 window 对象上。Angular-mock 来自 karma.conf.
既然弄清楚了原因,也就不再继续纠结 Angular 官网上的代码了,将 expect 改成 console.log 即可。
更多Jerry的原创文章,尽在:“汪子熙”:
为什么按照 Angular 官网教程执行简单的测试代码,会遇到expect is not defined的错误消息相关推荐
- Angular官网教程示例知识点总结
Angular官网教程示例知识点总结 1.背景 2.知识点 2.1 应用的外壳 2.1.1 使用 Angular CLI 创建初始的应用结构 2.1.2 启动应用服务器 2.1.3 双花括号表达式 2 ...
- 新手入坑:strapi官网教程的简单示例学习
关于strapi 前端仔,来,看这里,用strapi,定制你的api.一个字,香. 安装 npm i strapi@beta -g strapi new str-project 可能会比较慢 开始 n ...
- angular官网教程第7个HTTP,找不到angular-in-memory-web-api
npm i angular-in-memory-web-api 如果上述不行的话:参考这里=>http://blog.csdn.net/u012955029/article/details/77 ...
- Unity3D官网教程:Roll-A-Ball实现C#代码,5.X版
2019独角兽企业重金招聘Python工程师标准>>> 键盘小球控制代码: using System.Collections; using System.Collections.Ge ...
- 解决 Angular 官网下载的库 Schematics 执行 npm run build 时遇到的编译错误
我在 Angular 官网下载的 library Schematics 例子,运行命令行 npm run build 时,遇到如下错误: npm run build my-lib@0.0.1 buil ...
- Gem5模拟器,详解官网教程Event-driven programming(五)
目录 一.解释一下gem5中的event-driven? 二.Creating a simple event callback (1)定义一个新的 C++ 类,并继承自 SimObject 抽象基类 ...
- java官网教程(基础篇)—— 基础的Java类 —— 基础 I / O
目录 基本 Java 类 基础 I/O I/O流 字节流 字符流 缓冲流 扫描和格式化 扫描 格式化 从命令行中进行IO操作 数据流 对象流 文件 I/O(采用 NIO.2) 什么是路径? Path类 ...
- Angular官网学习笔记
Angular官网学习笔记 一.Angular概述 **什么是Angular:**一个基于TypeScript构建的开发平台包括: 一个基于组件的框架,用于构建可伸缩的Web应用 一组完美集成的库,涵 ...
- CMake学习笔记(一)——CMake官网教程
CMake学习笔记(一)--CMake官网教程 前言: 经历了一星期痛苦的交叉编译,笔者深刻认知到Linux下make的重要性.所以准备放缓两三天自己的工作进度,并学习一下CMake与Makefile ...
最新文章
- python3多线程爬虫_【Python3 爬虫】U23_多线程爬虫之初识多线程
- android高级篇收录
- 将模块放入到一个项目中展示_一个号称NB的开源电商系统
- 计算机应用类专业综合冲刺卷,计算机应用类专业(综合)二模试卷2011
- jq判断html为空,jquery如何判断是否为null?
- ajax实现form表单提交
- 各种VC9 VC11版本的Apache
- 解决“配置系统未能初始化”异常
- 遥感和GEE不正式告别
- apache配置基于域名访问
- nginx 80 443 并存
- 云服务器的计费模式有哪些?
- 补偿丰厚员工抢着被裁员?滴滴:不予回应
- 互联网医疗行业PEST分析实践
- 第三部分 和弦铃声格式
- 字典学习以及稀疏表示的概要
- gradle打包流程(一)--- 整体把控
- Macast Mac版 v0.61投屏软件
- 汇编语言 CLD指令
- 【运筹优化】DE差分进化算法求解无约束多元函数最值(Java代码实现)