共找到 5 篇tag为 "RSpec" 的文章

8 October 2016

rspec集成测试的总结

写了大概一个月的rspec测试,每次提交mr都能收到我厂CTO Rain的很多的comments,指出了很多的问题,现在我把这些问题分类好分享给大家参考参考。

17341053606 9b5a762298 O
read more
23 September 2016

RSpec 使用一周小结(下篇)——使用 FactoryGirl 准备测试数据

八月下旬发布了 RSpec 使用一周小结(上篇),文末预告了会有下篇介绍使用 FactoryGirl 准备测试数据,现在来了。

在自动化测试中,准备测试数据是最重要也是最麻烦的,因此我们需要一个好的管理工具来辅助生成测试数据。Rails 中的默认测试数据构件是 fixture,就是一堆 yml 文件,使用简单但不方便组织复杂的测试用例数据。

-- Rain

在这个前提下,我们使用了 factory_girl 这个gem,来做测试数据管理。

17341053606 9b5a762298 O
read more
23 August 2016

RSpec 使用一周小结(上篇)

过去一个星期,在开发中使用 RSpec 对系统的 API 进行了功能测试。在这个过程中现学现用,Rain 和 MC 对我写的测试提出了很多评审建议,现在记录下来,跟大家分享。

API 功能测试套路

  1. setup data & assert original state
  2. do something
  3. assert response
  4. assert new state

例如要测试用户注册,那就要先断言系统中没有用户,用户注册成功后,再断言系统中多了一个新用户。

17341053606 9b5a762298 O
read more
13 June 2016
BDD
TDD

简介如何测试Rails应用

If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. -- Gerald Weinberg, Weinberg’s Second Law

为什么我们需要自动化?

测试无疑会提高代码的正确性,而自动化不但能保证测试的可重复性,省去了手工测试的麻烦,也大大提高了生产力。

TDD & BDD

TDD,BDD是现在流行的测试方式。TDD是为了把事情做对(Do things right),而BDD主要是为了做正确的事(Do rignt thing). 在开发过程,BDD应先于TDD。因为方向错误了,做的再好,也没有意义。

Test-driven development

TDD要求,在写代码前先写测试(有时也会先写代码,再补完测试)。TDD不但可以确保代码的正确性,还可以帮助我们分解问题,保护已有代码,使代码有更好的维护性。

TDD流程 -- Red, Green, Refactor

TDD要求我们,在用代码实现前先要先思考我们期待这段代码做什么、如何同其他部分相互合作的,之后才是如何实现代码。

  1. Red: 写出测试。由于这个时候代码还没实现,所以测试是红色的。
  2. Green: 用最简单的代码让测试通过,让测试编程绿色。TDD并不主张过分的think ahead。代码可以通过测试即可。随着我们测试的增加和对问题理解的深入,可以不断的对代码进行改进。
  3. Refactor: 重构,不单单要重构实现,还要重构测试。尽量避免冗余,尽量使代码更好维护。

    重复以上过程。

Test introduction
read more