5-11敏捷开发rails的章节: Rspec(使用方法) ,Slim(使用操作简介)
Rspec: test
Slim :可以取代ERB的模版语言。(简单了解了以下,方便写代码,但我觉得不方便读。还是用原生的html)
Webpack管理css: 不再使用app/assets/stylesheets。
以上都是可选的。
RSpec.info/documentation/
Rspec (点击查看文档)
an alternative to MiniTest。
开发者喜欢Rspec,因为测试读起来像英语: the test reads like English.
推荐的测试书: Effective Testing with RSpec 3. (有详解。)
以下只是基本用法,和如何配置。
1. 添加gem。
group :development, :test do
gem 'rspec-rails'
end
2 .安装rspec
>rails generate rspec:install
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
3. 运行代码,查看是否安装成功
> bin/rails spec #No examples found.
4. 还有一行代码:bundle exec rspec 在bin文件夹中加入spec文件
如果是control中的AccountController
bundle exec rspec spec/controllers/accounts_controller_spec.rb
⚠️:可以使用gem 'spring-commands-rspec'提高应用的启动速度。改为执行:
bundle exec spring binstub rspec
5. Generator.(详细文档: list of all generators.)
安装后,如果使用rails generate model 和 rails generate controller
RSpec将生成 spec文件代替Test::Unit test文件。
开始测试:
1. route
如果是从程序开始便使用了RSpec.那么固件在spec/fixtures中。本例子是在中途使用的,所以需要在spec/rails_helper.rb 中配置导向路径:
把config.fixture_path = "#{::Rails.root}/spec/fixtures" 改成
config.fixture_path = "#{::Rails.root}/test/fixtures"
2. cart_spec.rb
subject, let都是声明变量,但subject是核心。let是辅助。
test本身和标准的Rails test不一样:
- 不叫test,叫examples.
- 惯例是每个例子只做一次断言assertion。
- Assertions本身也不一样,expect(actual_value).to eq(expected_value) ,可读性强
- 逻辑强,先要使用使用before do...end把产品加入购物车,然后再断言it "text" do...end。
- 如果相同的数据,进行不同目的的测试。需要用contest "text" do .. end
- 和标准Rails test的区别:describe , contest ,it 之后的文本描述增加了可读性
- rails spec SPEC_OPTS="--format=doc" 显示测试的结构。在.rspec文件内加上 ”--format documentation“
Serving CSS via Webpack
5.1后Rails全面支持Webpack.所以现在可以配置Webpack去服务CSS.
第一步:移动文件scss。
- 1.移动application.scss到javascript/packs
- 2.新建目录packs/css
- 3. 把其他scss移动到css中
原因:
//= require_tree. 和//= require_self。这两行代码的作用是告诉Sprockets包含所有scss文件。但是Webpack不支持这两条directives,所有需要手动添加scss文件到application.scss中。CSS文件实际是Sass文件,Sass文件可以使用@import载入外部文件。所以,我们要一条条的载入外部scss文件。
第三步: 改变application layout。然后从新启动程序。
把stylesheet_link_tag改为stylesheet_pack_tag
第四步,安装cssnext。yarn add postcss-cssnext
解释:cssnext.(点击查看)一个css插件,可以帮助使用最新的css syntax,通过转化让浏览器支持最新功能。
5-11敏捷开发rails的章节: Rspec(使用方法) ,Slim(使用操作简介)的更多相关文章
- IT168关于敏捷开发采访
1.我们知道敏捷开发是一套流程和方法的持续改进,通过快速迭代的方式交付产品,从而控制和降低成本.但是在实行敏捷初期,往往看不到很好的效果.这里面,您觉得问题主要出在哪?团队应如何去解决问题?金根:我认 ...
- [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum
[敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum 1,Scrum概述 上篇中提到敏捷开发有两种主流的方法,一个是XP,另一个是Scrum,本篇简要介绍Scrum方法.Scrum是 ...
- 用户故事驱动的敏捷开发 – 2. 创建backlog
本系列的第一篇[用户故事驱动的敏捷开发 – 1. 规划篇]跟大家分享了如何使用用户故事来帮助团队创建需求的过程,在这一篇中,我们来看看如何使用这些用户故事和功能点形成产品backlog.产品backl ...
- 20145308刘昊阳 《Java程序设计》实验三 敏捷开发与XP实践 实验报告
20145308刘昊阳 <Java程序设计>实验三 敏捷开发与XP实践 实验报告 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 统计的PSP(Personal ...
- 20145225《Java程序设计》 实验三 "敏捷开发与XP实践"
20145225<Java程序设计> 实验三 "敏捷开发与XP实践" 实验报告 实验内容 使用 git 上传代码 使用 git 相互更改代码 实现代码的重载 git 上 ...
- 实验三 敏捷开发与XP实践(改)
---恢复内容开始--- 一.敏捷开发与XP 二.编码标准 1.编码标准中的版式就是一个很好的例子,版式虽然不会影响程序的功能,但会影响可读性.程序的版式追求清晰.美观,是程序风格的重要因素.单击Ec ...
- 敏捷开发之道(三)极限编程XP续
上次的博文敏捷开发之道(二)极限编程XP中,我们了解了XP的实践中的其中四个,今天我们来一起学习一下剩余的实践. --接上文 5).结对编程 结对编程就是由结对的开发人员使用同一台电脑共同完成一项任务 ...
- 20162311 实验三 敏捷开发与XP实践 实验报告
20162311 实验三 敏捷开发与XP实践 实验报告 实验内容 一.研究学习IDEA中的Code菜单 使用Code ->Reformate Code功能将以下代码格式化 public clas ...
- CI/CD持续集成/持续部署 敏捷开发
敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它 ...
随机推荐
- python 运行脚本报错 from keyword import iskeyword as _iskeyword ImportError: cannot import name iskeyword,说明python环境坏了,得重装,尚不知具体原因,
C:\Python27\Scripts>python task_test.pyTraceback (most recent call last): File "task_test.p ...
- 检测u盘是否挂载上方法
打开内核log:echo "8" > /proc/sys/kernel/printk 关闭内核log:echo "1" > /proc/sys/ke ...
- 访问Hsql .data数据库文件
一.Hsql简介: hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议. 仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作等内容.下载地址 ...
- [转] Oracle学习之创建数据库(新建实例)
由于项目需求,在本机中开发,需要新建oracle数据库实例,亲测可以. 出处:http://blog.csdn.NET/luiseradl/article/details/6972217 http:/ ...
- JAVA注解@Interface基础知识
java注解是在JDK5时引入的新特性,大多数框架(SpringBoot.MyBatis.Quartz)背后都在大量使用注解开发. 一.先进行一个小试验,了解注解开发流程 建立maven项目annot ...
- 《课程设计》——cupp的使用
<课程设计>--cupp的使用 cupp简介 cupp是强大的字典生成脚本.它是一款用Python语言写成的可交互性的字典生成脚本.尤其适合社会工程学,当你收集到目标的具体信息后,你就可以 ...
- win32 自定义右键菜单
/**************************************************************************** 几大主要问题: 1.通过处理WM_MOUSE ...
- 【前端】javascript+jquery实现手风琴式的滚动banner或产品展示图
实现效果 实现步骤 // 鼠标放入到li中该盒子变宽,其他盒子变窄,鼠标移开大盒子,恢复原样 // 实现步骤 // 1. 给li添加背景 // 2. 绑定onmouseover事件,鼠标放入到li中, ...
- Python3基础 函数 收集参数(tuple)+普通参数 的示例
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- linux的dns被劫持
环境:ubuntu16.04 解说:ubuntu使用dnsmasq获取要解析的网站ip,dnsmasq通过域名服务器获取网站ip,并将ip缓存起来,那么就可以减少对外网域名服务器的访问,从而可以使系统 ...