rspec集成测试的总结
写了大概一个月的rspec测试,每次提交mr都能收到我厂CTO Rain的很多的comments,指出了很多的问题,现在我把这些问题分类好分享给大家参考参考。
- by:
- 0 Comments
- Sharing
共找到 5 篇tag为 "RSpec" 的文章
写了大概一个月的rspec测试,每次提交mr都能收到我厂CTO Rain的很多的comments,指出了很多的问题,现在我把这些问题分类好分享给大家参考参考。
八月下旬发布了 RSpec 使用一周小结(上篇),文末预告了会有下篇介绍使用 FactoryGirl 准备测试数据,现在来了。
在自动化测试中,准备测试数据是最重要也是最麻烦的,因此我们需要一个好的管理工具来辅助生成测试数据。Rails 中的默认测试数据构件是 fixture,就是一堆 yml 文件,使用简单但不方便组织复杂的测试用例数据。
-- Rain
在这个前提下,我们使用了 factory_girl
这个gem,来做测试数据管理。
过去一个星期,在开发中使用 RSpec 对系统的 API 进行了功能测试。在这个过程中现学现用,Rain 和 MC 对我写的测试提出了很多评审建议,现在记录下来,跟大家分享。
例如要测试用户注册,那就要先断言系统中没有用户,用户注册成功后,再断言系统中多了一个新用户。
最近开始接触rails集成测试(可见同事分享的《简介如何测试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是为了把事情做对(Do things right),而BDD主要是为了做正确的事(Do rignt thing). 在开发过程,BDD应先于TDD。因为方向错误了,做的再好,也没有意义。
TDD要求,在写代码前先写测试(有时也会先写代码,再补完测试)。TDD不但可以确保代码的正确性,还可以帮助我们分解问题,保护已有代码,使代码有更好的维护性。
TDD要求我们,在用代码实现前先要先思考我们期待这段代码做什么、如何同其他部分相互合作的,之后才是如何实现代码。
Refactor: 重构,不单单要重构实现,还要重构测试。尽量避免冗余,尽量使代码更好维护。
重复以上过程。