• 使用Capybara进行JS的集成测试
  • 谈论驱动
  • 让测试通过
  • Webpack in Development Mode

Js设计 是用户在网页上有好的体验的重要因素。 尽管如此,许多网页不测试JS。

部分原因是js难以测试。交互和逻辑是依靠用户在网页上的交互动作,这就难了。

Js框架也不支持简单的单元测试。同时工具变化也非常快。b本章使用的工具看起来有点老,如果你读的时候没有被彻底的antiquated废弃。

本章谈使用集成测试工具 Capybara来测试js,从客户端代码。

下章谈论单元测试JS,用JS工具,和Webpack支持(Rails5.1新增)


一个2个小时解决的教材bug:

创建project 时输入tasks不能跳转到projects页面

这个问题就应当是没有满足验证,所以不能存入数据库。使用对象.reload.属性 提示不存在对象。

使用valid?和erroes.message方法。 提示project.tasks 未通过验证。

在Task.new代码上哪块出现了问题了? 之前没有问题,是否是由于增加了task属性,所以需要更新之前的自动化测试内容??

在rails c控制器模拟新增和保存2个数据表的数据,发现了问题:

教材是先新增一个project,然后新增一组task,然后关联2方,最后save。这是❌的。

错误提示 [tasks is invalid],无法写入数据库

应该是先保存一下project,然后可以新建task,然后使用project.task << [task..] 这样会自动的关联并保存task,和更新project。✌️

另外⚠️has_many的方法collection= (objects)是删除原先的,然后增加objects。草,教材也不审核。!!

使用factorybot, 桩件,因为不和数据库交互,所以可能就不能排除某些bug.

集成测试则可以发现问题。

当集成测试发现问题,需要排查单元测试

  1. 是否同步更新了测试
  2. 找不到的化,原生数据测试一下。

app/controllers/projects_controller

  def create
    @workflow = CreatesProject.new(
      name:params[:project][:name],
      task_string: params[:project][:tasks]
    )
    @workflow.create
    if @workflow.project.errors.empty?    #如过没有❌,即[]

Rails 5 Test Prescriptions 第9章 Testing-JavaScript: Integration Testing,❌挂一个问题webpacker::helper的更多相关文章

  1. Rails 5 Test Prescriptions 第10章 Unit_Testing JavaScript(新工具,learn曲线太陡峭,pass)

    对Js的单元测试是一个大的题目.作者认为Ruby的相关测试工具比Js的测试工具更灵活 大多数Js代码最终是关于响应用户的行为和改变DOM中的元素 没有什么javascript的知识点.前两节用了几个新 ...

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

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

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

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

  4. Rails 5 Test Prescriptions 第5章 Testing Models

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

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

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

  6. Rails 5 Test Prescriptions 第14章 Testing Exteranl Services(中断。)

    external testing strategy ✅ the service integration test✅ introduce VCR✅ Client Unit Tests ❌ Why an ...

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

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

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

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

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

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

随机推荐

  1. Dreamweaver 中CSS代码格式化

    首先,用DW打开一个已经写好的css文件,看一下编辑好的,没有格式化之前的代码的样子.   然后,我们点击软件窗口上方的“命令”选项,在弹出的菜单中点击“应用源格式”选项,就可以将我们的代码格式化. ...

  2. javascript飞机大战-----008积分

    /* 创建敌机: */ function Enemy(blood,speed,imgs,scroe){ //敌机left this.left = 0; //敌机top this.top = 0; // ...

  3. 170607、SQL Select语句完整的执行顺序

    SQL Select语句完整的执行顺序: 1.from子句组装来自不同数据源的数据: 2.where子句基于指定的条件对记录行进行筛选: 3.group by子句将数据划分为多个分组: 4.使用聚集函 ...

  4. oracle Bug 4287115(ora-12083)

    今天公司开发在删除表时报错ora-12083,很是疑惑,数据字典记录的是表,而删除要用物化视图方式删除,如下: SQL> DROP TABLE CODE_M_AGENCY;DROP TABLE ...

  5. Celery和Rabbitmq自学

    异步消息队列,也能用于定时和周期性任务.每次修改的task代码还要重启worker,这个有点麻烦 所有带task()装饰器的可调用对象(usertask)都是celery.app.task.Task类 ...

  6. 爬虫Scrapy框架

    安装scrapy 在安装过程中报错:解决方案 通过在https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted,然后下载: CP后是python 版本,32 ...

  7. docker 数据管理数据卷

    1,数据卷 数据卷是一个可供容器使用特殊目录,他将主机操作系统目录直接映射容器 1,在容器内创建一个数据卷 在使用docker run命令的时候,使用-v标记就可以创建一个数据卷,多次重复使用-v可以 ...

  8. JAVA优化技巧分享 让游戏更加的流畅

    我的世界怎么样可以玩的更加流畅呢?怎么对游戏进行优化呢?相信很多小伙伴都很想知道吧,今天小编为大家带来的是我的世界游戏优化技巧,喜欢的小伙伴不要错 ... 在很多时候如果电脑配置过低的话,玩游戏并不流 ...

  9. Qt emit的使用

    1. 假设现在我定义了一个类A,现在想在A的一个函数void A::function1()当中的结尾处emit一个信号signal1(),然后利用这个信号触发另一个类B进行某项操作void B::fu ...

  10. (27)Cocos2d-x 3.0 Json用法

    Cocos2d-x 3.0 加入了rapidjson库用于json解析.位于external/json下. rapidjson 项目地址:http://code.google.com/p/rapidj ...