伴随着程序成长,测试变长,复杂性增加,如何更高效的写测试,对以后开发不会造成麻烦. 测试本身没发被测试,所以一定要清楚,可控.不要加循环,不要过于复杂的自动编程. Cost and Value 成本和价值. 测试有成本和价值 .因此要最小化成本,最大化价值. 什么是成本,什么是价值? 成本(time): 写测试的时间 每次运行测试花费的时间 理解测试所需要的时间 如果测试出错,搞定它并让程序ok的时间 有时候,改变程序代码带来的调整测试所花费的时间 价值(部分) 写测试的行为让它更容易的定义代码…
Routes✅ Helper Methods✅ Controllers and Requests✅ Simulating Requests⚠️,看之前的博客 What to Expect in a Request Spec ✅ Older Rails Controller Tests ❌ Testing Mailers ❌ Testing Views and View Markup✅ Using Presenters ❌没看需要额外gem Testing Jobs and Cables 这些测试…
使用Capybara进行JS的集成测试 谈论驱动 让测试通过 Webpack in Development Mode Js设计 是用户在网页上有好的体验的重要因素. 尽管如此,许多网页不测试JS. 部分原因是js难以测试.交互和逻辑是依靠用户在网页上的交互动作,这就难了. Js框架也不支持简单的单元测试.同时工具变化也非常快.b本章使用的工具看起来有点老,如果你读的时候没有被彻底的antiquated废弃. 本章谈使用集成测试工具 Capybara来测试js,从客户端代码. 下章谈论单元测试JS…
Capybara:  A complete reference is available atrubydoc.info. 集成测试就是把局部的程序组合起来测试. 端到端测试是一个特殊的集成测试,覆盖了系统的全部行为, end-to-end. 接受测试acceptance test是用来指定正确行为,从客户或商业想法出发.Acceptance tests 通常在代码开始之前就计划或者写了. 集成测试也使用Javascript driver来评测基于Javascript的模仿用户行动. 本章是无Js…
Rails,model层包含业务逻辑和储存逻辑.其中储存逻辑被ActiveRecord处理. 在model中,不是每件事都必须是ActiveRecord对象.model layer可以包含各种服务,对象的值,或其他封装逻辑的类并使用ActiveRecord对象来储存. what can you do, 答案:type::model,没啥新东西,测试model✅ what makes a good Set of Model Tests?✅ Refactoring Models ✅ a Note o…
本章,你将扩大你的模型测试,测试整个Rails栈的逻辑(从请求到回复,使用端到端测试). 使用Capybara来帮助写end-to-end 测试. 好的测试风格,包括端到端测试,大量目标明确的单元测试,和相关的一些覆盖中间代码的测试. 开始写Rails Requirements-gathering,分析需求,是一整本书的内容.本节假设是写一个自用的小程序,因此无需military-grade precision. 列出非正式的需求单子: A user can enter a task, asso…
Web 安全是一个可怕的主题.所有的你的程序都依靠密码学,代码超出了你的控制. 尽管如此,你还是可以控制部分网页安全 --所有的logins和access checks和injection errors. 本章聚焦在user logins, roles, 和使用测试来确保基本的用户验证. User Authentication and Authorization 用户验证和授权✅ Adding Users and Roles✅ Restricting Access✅ More Access-Co…
对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 t…
https://relishapp.com/rspec/rspec-mocks/v/3-7/docs/basics/test-doubles 你有一个问题,如果想为程序添加一个信用卡程序用于自己挣钱.测试信用卡函数很难.你不像在测试时,真来一个信用卡购买.而且网络远程调用很慢. 或者你有另一个问题.你想要使用模块设计来开发代码.你想要你的测试尽可能的和其他相关的部分的代码隔离开. 比如你有一个业务逻辑会调用一个model,但是你的测试不想用这个model,你想要你的workflow test有效…
bcreate the data quickly and easily.考虑测试运行的速度. fixtures and factories.以及下章讨论的test doubles,还有原生的create创建的,没有一个方案可以解决所有情景. Fxitures 如果想使用固件.RSpec目录是spec/fixtures/projects.yml. Mini test的目录是test/fixtures/ runway:    name: Project Runway due_date: 2016-1…
Set expectations 你不可能把一个老旧的代码野兽只用一晚就转变成优雅的奇迹marvel.你需要如下做法: 让自己有好的状态,用15分钟挥舞拳头诅咒之前的程序员 开始工作,这个codebase现在归你了. 如果你像我一样,立即搞定每件事并或增加测试给每件事的冲动十分强烈,那么休闲让这个感觉过去. 一上来就给遗产代码增加测试不是好注意,这里有2个原因: 第一个问题是,你接管这个遗产代码后你期望做点什么,而客户的想法未必和你一样.所以先和客户交流,或者和产品经理充分交流,确定需求后再开始…
external testing strategy ✅ the service integration test✅ introduce VCR✅ Client Unit Tests ❌ Why an Adapter? Testing for Error Cases Smoke Tests and VCR Options 冒烟测试!…
总文档连接: RSpec.info/documentation/ 如何使用TDD 和 自动化测试来建立一个Rails app. TDD让你用测试来探索代码的设计.你将学习可利用的工具,并学习用什么工具最好使.Tools comes and tools go, 工具是不断进化的,所以作者希望读者用最少的步骤写出更好的代码. to help you write great app that do cool things and still catch the train home! What's i…
Spring speeds up development by keeping your application running in the background Rails程序自动增加:spring和spring-watcher-listen. 增加一个spring-commands-rspec gem $ spring status  检测是否启动spring Spring is running:  7424 spring server | gatherer | started 220 h…
搭建S3C6410开发板的测试环境 通过本章的学习学会了如何在开发板上安装Android.开发板是学习和开发嵌入式技术的主要硬件设备,想要顺利的通过linux驱动访问硬件,是不能在PC板上模拟的,需要在卡发板上进行调试和测试.其相对于手机更适合与对程序进行测试,尤其是对底层linux程序进行测试.还了解了S3C6410开发板的基本信息.知道了如何安装串口调试工具以及烧写Android系统.知道了如何配置有线网络. S3C6410是一款低功耗.高性价比的精简指令集计算机处理器.它基于ARM11内核…
原文: Testing Controller Logic 作者: Steve Smith 翻译: 姚阿勇(Dr.Yao) 校对: 高嵩(Jack) ASP.NET MVC 应用程序的控制器应当小巧并专注于用户界面.涉及了非 UI 事务的大控制器更难于测试和维护. 章节: 为什么要测试控制器 单元测试 集成测试 在 GitHub 上查看或下载示例 为什么要测试控制器 控制器是所有 ASP.NET Core MVC 应用程序的核心部分.因此,你应当确保它们的行为符合应用的预期. 自动化测试可以为你提…
在PC上可以开发Linux驱动,重新编译成ARM架构的Linux驱动模块,但最后还是要在开发板上进行测试.目前最流行的是基于三星S3C6410 ARM11架构的开发板,很多厂商在其基础上进行了扩展,开发了扩展板. 下面对S3C6410开发板进行简单的介绍:三星S3C6410是一款低功耗.高性价比的RISC精简指令集系统的处理器,基于ARM11内核,可用于移动电话和通用处理等领域.它为通信服务提供了优化的硬件性能,内置强大的硬件加速器,有运动视频处理.音频处理.2D加速.显示处理和缩放等,还集成了…
1.使用Eboot擦除NandFlash的方法如下: 第一步:准备工作 用串口线或USB转串口线连接开发板和PC,并启动minicom 第二步:进入Eboot状态 打开OK6410开发板的电源开关,过一会出现如下等待5秒的提示信息, 按PC键盘的空格键使开发板停留在Eboot状态 Initiating image launch in 5 seconds. 第三步:擦除NandFlash 进入Eboot状态后会出现菜单栏,输入"A"即可擦除NandFlash. 2.烧写Android的步…
Linux超快速安装Ruby on Rails 时间 2014-11-25 11:45:11 Flincllck Talk 原文  http://www.flincllck.com/quick-install-rails/ 主题 Ruby on Rails Sed 在前面的一篇文章我介绍了一个安装ROR的方法,不过对于刚接触Unix命令行的来说还是比较复杂,容易出错.现在介绍一个利用rvm快速安装ruby.gem.rails的方法 一:安装curl sudo apt-get install cu…
10.测试文件上传 作者推荐的Paperclip,官方维护组已经不推荐使用deprecated. 推荐使用rails自带的 ActiveStorage. Active Storage: 推进文件上传到云存储,并附加这些文件到Active Record object.它 和本地驱动服务一起用于开发和测试.也支持反射文件到附属服务作为备份backups and migrations. http://guides.rubyonrails.org/active_storage_overview.html…
rails项目没有使用默认的单元测试包,而是使用了rspec-rails来测试. 按照文档说明首先生成对应的测试文件: rails generate integration_test xxx invoke rspec create spec/requests/xxx.rb 然后在spec/spec_helper.rb中添加以下一句: RSpec.configure do |config| . . . config.include Capybara::DSL end 最后使用以下测试命令: bun…
完整教程下载地址:http://forum.armfly.com/forum.php?mod=viewthread&tid=86980 第11章       STM32H7移植SEGGER的硬件异常分析 本章节为大家介绍SEGGER的硬件异常分析代码在MDK和IAR中的使用方法,在实际项目中比较有实用价值,因为我们经常会遇到进入硬件异常的情况. 11.1 初学者重要提示 11.2 移植方法 11.3 MDK锁定硬件异常位置方法 11.4 IAR锁定硬件异常位置方法 11.5 硬件异常原因分析 1…
第39章     RL-TCPnet之TFTP服务器 本章节为大家讲解RL-TCPnet的TFTP服务器应用,学习本章节前,务必要优先学习第38章的TFTP基础知识.有了这些基础知识之后,再搞本章节会有事半功倍的效果. 本章教程含STM32F407开发板和STM32F429开发板. 39.1  初学者重要提示 39.2  TFTP函数 39.3  TFTP配置说明(Net_Config.c) 39.4  TFTP调试说明(Net_Debug.c) 39.5  TFTP客户端软件和板子的操作步骤…
第37章      RL-TCPnet之FTP客户端 本章节为大家讲解RL-TCPnet的FTP客户端应用,学习本章节前,务必要优先学习第35章的FTP基础知识.有了这些基础知识之后,再搞本章节会有事半功倍的效果. 本章教程含STM32F407开发板和STM32F429开发板. 37.1  初学者重要提示 37.2  FTP函数 37.3  FTP配置说明(Net_Config.c) 37.4  FTP调试说明(Net_Debug.c) 37.5  FTP访问方法和板子的操作步骤 37.6  实…
第36章      RL-TCPnet之FTP服务器 本章节为大家讲解RL-TCPnet的FTP服务器应用,学习本章节前,务必要优先学习第35章的FTP基础知识.有了这些基础知识之后,再搞本章节会有事半功倍的效果. 本章教程含STM32F407开发板和STM32F429开发板. 36.1  初学者重要提示 36.2  FTP函数 36.3  FTP配置说明(Net_Config.c) 36.4  FTP调试说明(Net_Debug.c) 36.5  FTP访问方法和板子的操作步骤 36.6  实…
第32章      RL-TCPnet之Telnet服务器 本章节为大家讲解RL-TCPnet的Telnet应用,学习本章节前,务必要优先学习第31章的Telnet基础知识.有了这些基础知识之后,再搞本章节会有事半功倍的效果. 本章教程含STM32F407开发板和STM32F429开发板. 32.1  初学者重要提示 32.2  Telnet函数 32.3  Telnet配置说明(Net_Config.c) 32.4  Telnet调试说明(Net_Debug.c) 32.5  Telnet访问…
第20章      RL-TCPnet之BSD Socket客户端 本章节为大家讲解RL-TCPnet的BSD Socket,学习本章节前,务必要优先学习第18章的Socket基础知识.有了这些基础知识之后,再搞本章节会有事半功倍的效果.另外RL-TCPnet的socket仅支持UDP协议和TCP协议,我们本章节仅讲解了TCP协议方式的BSD Socket. 本章教程含STM32F407开发板和STM32F429开发板. 20.1  初学者重要提示 20.2  BSD Socket相关的头文件定…
第19章      RL-TCPnet之BSD Socket服务器 本章节为大家讲解RL-TCPnet的BSD Socket,学习本章节前,务必要优先学习第18章的Socket基础知识.有了这些基础知识之后,再搞本章节会有事半功倍的效果.另外RL-TCPnet的socket仅支持UDP协议和TCP协议,我们本章节仅讲解了TCP协议方式的BSD Socket. 本章教程含STM32F407开发板和STM32F429开发板. 19.1  初学者重要提示 19.2  BSD Socket相关的头文件定…
第17章      RL-TCPnet之UDP通信 本章节为大家讲解RL-TCPnet的UDP通信实现,学习本章节前,务必要优先学习第16章UDP用户数据报协议基础知识.有了这些基础知识之后,再搞本章节会有事半功倍的效果. 本章教程含STM32F407开发板和STM32F429开发板. 17.1  初学者重要提示 17.2  UDP的API函数 17.3  特别注意UDP个数配置 17.4  UDP配置说明(Net_Config.c) 17.5  UDP调试说明(Net_Debug.c) 17.…
第15章     RL-TCPnet之创建多个TCP连接 本章节为大家讲解RL-TCPnet的TCP多客户端实现,因为多客户端在实际项目中用到的地方还挺多,所以我们也专门开启一个章节做讲解.另外,学习本章节前,务必要优先学习第14章TCP客户端.学会创建一个TCP客户端了,创建多个客户端是一样的. 本章教程含STM32F407开发板和STM32F429开发板. 15.1  初学者重要提示 15.2  创建多个TCP客户端连接服务器 15.3  TCP配置说明(Net_Config.c) 15.4…