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的错误消息相关推荐

  1. Angular官网教程示例知识点总结

    Angular官网教程示例知识点总结 1.背景 2.知识点 2.1 应用的外壳 2.1.1 使用 Angular CLI 创建初始的应用结构 2.1.2 启动应用服务器 2.1.3 双花括号表达式 2 ...

  2. 新手入坑:strapi官网教程的简单示例学习

    关于strapi 前端仔,来,看这里,用strapi,定制你的api.一个字,香. 安装 npm i strapi@beta -g strapi new str-project 可能会比较慢 开始 n ...

  3. angular官网教程第7个HTTP,找不到angular-in-memory-web-api

    npm i angular-in-memory-web-api 如果上述不行的话:参考这里=>http://blog.csdn.net/u012955029/article/details/77 ...

  4. Unity3D官网教程:Roll-A-Ball实现C#代码,5.X版

    2019独角兽企业重金招聘Python工程师标准>>> 键盘小球控制代码: using System.Collections; using System.Collections.Ge ...

  5. 解决 Angular 官网下载的库 Schematics 执行 npm run build 时遇到的编译错误

    我在 Angular 官网下载的 library Schematics 例子,运行命令行 npm run build 时,遇到如下错误: npm run build my-lib@0.0.1 buil ...

  6. Gem5模拟器,详解官网教程Event-driven programming(五)

    目录 一.解释一下gem5中的event-driven? 二.Creating a simple event callback (1)定义一个新的 C++ 类,并继承自 SimObject 抽象基类 ...

  7. java官网教程(基础篇)—— 基础的Java类 —— 基础 I / O

    目录 基本 Java 类 基础 I/O I/O流 字节流 字符流 缓冲流 扫描和格式化 扫描 格式化 从命令行中进行IO操作 数据流 对象流 文件 I/O(采用 NIO.2) 什么是路径? Path类 ...

  8. Angular官网学习笔记

    Angular官网学习笔记 一.Angular概述 **什么是Angular:**一个基于TypeScript构建的开发平台包括: 一个基于组件的框架,用于构建可伸缩的Web应用 一组完美集成的库,涵 ...

  9. CMake学习笔记(一)——CMake官网教程

    CMake学习笔记(一)--CMake官网教程 前言: 经历了一星期痛苦的交叉编译,笔者深刻认知到Linux下make的重要性.所以准备放缓两三天自己的工作进度,并学习一下CMake与Makefile ...

最新文章

  1. python3多线程爬虫_【Python3 爬虫】U23_多线程爬虫之初识多线程
  2. android高级篇收录
  3. 将模块放入到一个项目中展示_一个号称NB的开源电商系统
  4. 计算机应用类专业综合冲刺卷,计算机应用类专业(综合)二模试卷2011
  5. jq判断html为空,jquery如何判断是否为null?
  6. ajax实现form表单提交
  7. 各种VC9 VC11版本的Apache
  8. 解决“配置系统未能初始化”异常
  9. 遥感和GEE不正式告别
  10. apache配置基于域名访问
  11. nginx 80 443 并存
  12. 云服务器的计费模式有哪些?
  13. 补偿丰厚员工抢着被裁员?滴滴:不予回应
  14. 互联网医疗行业PEST分析实践
  15. 第三部分 和弦铃声格式
  16. 字典学习以及稀疏表示的概要
  17. gradle打包流程(一)--- 整体把控
  18. Macast Mac版 v0.61投屏软件
  19. 汇编语言 CLD指令
  20. 【运筹优化】DE差分进化算法求解无约束多元函数最值(Java代码实现)

热门文章

  1. android应用APP中的页面响应时间测试
  2. redis服务部署及配置详解
  3. Android小数和整数相互转换
  4. 【转载】jQuery学习笔记
  5. 字符串常量池StringTable 你真的了解么
  6. JavaSE知识点个人总结(不断更新)
  7. Markdown基本语法总结
  8. 线段树为什么要开4倍空间
  9. Redis- 内存数据库Redis之安装部署
  10. 077 Apache的HBase与cdh的hue集成(不建议不同版本之间的集成)