对Js的单元测试是一个大的题目。作者认为Ruby的相关测试工具比Js的测试工具更灵活

大多数Js代码最终是关于响应用户的行为和改变DOM中的元素

没有什么javascript的知识点。前两节用了几个新的测试工具,和大量配置,暂时pass.

  • setup js Unit-tests
  • writing a Sample test
  • Tdd in Js
  • jasmine matchers
  • testing ajax calls
  • using testdouble.js
  • connecting the js to the server code

Setting Up JavaScript Unit Tests

Webpack的配置很复杂,虽然rails团队已经做了改进,有时仍需要挖掘细节。

本章使用:

Karma test runner: 从命令行运行,执行测试,和微博趴窗口良好兼容

Jasmine: 一个测试的工具,作者喜欢它的syntax。

TestDouble package:

命令:加载相关的模块:

yarn add jasmine jasmine-core karma karma-chrome-launcher karma-jasmine karma-mocha-reporter karma-sourcemap-loader karma-webpack testdouble testdouble-jasmine --dev

解释:

使用Yarn package manager来管理独立的JS。使用Yarn来加载这些modules。

--dev命令增加这些模块到package.json中的独立的section 。(就是说这些模块只在development环境下使用,都是用于测试的) 标签是"devDependencies"

  "devDependencies": {
    "jasmine": "^3.1.0", 写代码的库
    "jasmine-core": "^3.1.0", 写代码的库
    "karma": "^2.0.2", command-line program 
    "karma-chrome-launcher": "^2.2.0", 让karma在Chrome中运行测试
    "karma-jasmine": "^1.1.2", 接口
    "karma-mocha-reporter": "^2.2.5",
    "karma-sourcemap-loader": "^0.3.7",
    "karma-webpack": "^3.0.0", 让karma使用webpack
    "testdouble": "^3.8.1", mock object package
    "testdouble-jasmine": "^0.2.1", 两者的集成。
    "webpack-dev-server": "2.11.2"
  }

再运行:

$ yarn global add karma-cli

所以模块已经加载了。

Rails 5 Test Prescriptions 第10章 Unit_Testing JavaScript(新工具,learn曲线太陡峭,pass)的更多相关文章

  1. Rails 5 Test Prescriptions 第10章 Testing for Security

    Web 安全是一个可怕的主题.所有的你的程序都依靠密码学,代码超出了你的控制. 尽管如此,你还是可以控制部分网页安全 --所有的logins和access checks和injection error ...

  2. Rails 5 Test Prescriptions 第9章 Testing-JavaScript: Integration Testing,❌挂一个问题webpacker::helper

    使用Capybara进行JS的集成测试 谈论驱动 让测试通过 Webpack in Development Mode Js设计 是用户在网页上有好的体验的重要因素. 尽管如此,许多网页不测试JS. 部 ...

  3. Rails 5 Test Prescriptions 第11章其他部分的测试。

    Routes✅ Helper Methods✅ Controllers and Requests✅ Simulating Requests⚠️,看之前的博客 What to Expect in a R ...

  4. Rails 5 Test Prescriptions 第8章 Integration Testing with Capybara and Cucumber

    Capybara:  A complete reference is available atrubydoc.info. 集成测试就是把局部的程序组合起来测试. 端到端测试是一个特殊的集成测试,覆盖了 ...

  5. Rails 5 Test Prescriptions 第6章Adding Data to Tests

    bcreate the data quickly and easily.考虑测试运行的速度. fixtures and factories.以及下章讨论的test doubles,还有原生的creat ...

  6. Rails 5 Test Prescriptions 第5章 Testing Models

    Rails,model层包含业务逻辑和储存逻辑.其中储存逻辑被ActiveRecord处理. 在model中,不是每件事都必须是ActiveRecord对象.model layer可以包含各种服务,对 ...

  7. Rails 5 Test Prescriptions 第4章 什么制造了伟大的测试

    伴随着程序成长,测试变长,复杂性增加,如何更高效的写测试,对以后开发不会造成麻烦. 测试本身没发被测试,所以一定要清楚,可控.不要加循环,不要过于复杂的自动编程. Cost and Value 成本和 ...

  8. Rails 5 Test Prescriptions 第3章Test-Driven Rails

    本章,你将扩大你的模型测试,测试整个Rails栈的逻辑(从请求到回复,使用端到端测试). 使用Capybara来帮助写end-to-end 测试. 好的测试风格,包括端到端测试,大量目标明确的单元测试 ...

  9. Rails 5 Test Prescriptions 第7章 double stub mock

    https://relishapp.com/rspec/rspec-mocks/v/3-7/docs/basics/test-doubles 你有一个问题,如果想为程序添加一个信用卡程序用于自己挣钱. ...

随机推荐

  1. docker stack命令

    启动docker docker stack deploy -c compose-filename.yml service-name docker stack rm service-name

  2. java web 打印(lodop)案例

    应需求接触到lodop 打印. 首先在lodop官网下载相关文件(js.css等):http://www.lodop.net/download.html 在下载好的包里  除了html页面  其他的j ...

  3. C# WebBrowser的8个方法、13个属性和事件

    1.方法 说明 GoBack 相当于IE的“后退”按钮,使你在当前历史列表中后退一项 GoForward 相当于IE的“前进”按钮,使你在当前历史列表中前进一项  GoHome 相当于IE的“主页”按 ...

  4. MySQL数据的查询注意

    mysql数据库的查询结果输出的是一个记录,这一个记录是以字典的形式存储的,所以获取字段时要用字典提取数据的形式获取字段信息: 查询的代码: def query(self): # sql语句 sql ...

  5. Create an Index

    db.collection.createIndex( { name: -1 } ) Indexes — MongoDB Manual https://docs.mongodb.com/manual/i ...

  6. 202-React.Component组件、生命周期

    一.概述 React可以将组件定义为类或函数.定义为类的组件当前提供了更多的功能.要定义React组件类,您需要扩展React.Component: class Welcome extends Rea ...

  7. STL学习笔记--序列式容器

    1.vector vector是一个线性顺序结构.相当于数组,但其大小可以不预先指定,并且自动扩展.故可以将vector看作动态数组. 在创建一个vector后,它会自动在内存中分配一块连续的内存空间 ...

  8. Mysql 数据库系列

    阅读目录 第一篇:  数据库初识 第二篇:  库操作 第三篇:  存储引擎 第四篇:  表操作 第五篇:  数据操作 第六篇:  索引原理与慢查询优化 第七篇:  数据备份 pymysql模块 第八篇 ...

  9. com.sun.image.codec.jpeg在Eclipse中报错的解决办法

    在Eclipse中处理图片,需要引入两个包:import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEG ...

  10. (转)SSIS_数据流转换(Union All&合并联接&合并)

    Union All : 与sql语言 Union All 一样,不用排序,上下合并多个表.Union All转换替代合并转换:输入输出无需排序,合并超过两个表 合并联接 : 有左连接.内连接.完全连接 ...