`
andyhu1007
  • 浏览: 199445 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Rails每周闲碎(八): Test

阅读更多

1. Cucumber

 

    Cucumber is a tool that can execute plain-text documents as automated functional tests. Here is an example:

 

 

Feature: Search courses
  In order to ensure better utilization of courses
  Potential students should be able to search for courses

  Scenario: Search by topic
    Given there are 240 courses which do not have the topic "biology"
    And there are 3 courses A,B,C that each have "biology" as one of the topics
    When I search for "biology"
    Then I should see the following courses:
      | title |
      | A     |
      | B     |
      | C     |
 

   用Cucumber来写客户验收测试的目的是明显的,就是让客户或者业务分析师能看懂甚至由他们来编写客户验收测试。

 

    但在实际应用中,Cucumber真的能做到它想做的么?我个人是持怀疑态度的。理由有几点:

 

    a. Cucumber测试用例的编写没有那么简单和自由。Cucumber的本质是在文本和程序语言之间建立一种映射。这种映射限制了cucumber测试用 例的编写必须遵循某种规则,并且每个语句都需要有相应的程序语言实现。那么就是说,如果要让客户或者业务分析师脱离开发或者测试人员,独立并且无障碍地编 写测试用例,我觉得大多数人没有这个能力。既然如此,它已经脱离了它本身的初衷。

 

    b. 用method chain本身就可以实现基本类似的测试用例,为什么要多此一举呢?在项目中,我们用了cucumber,实践证明cucumber用例的编写和维护是相当麻烦的。

 

    c. 大多数业务人员或者客户根本不会看它一眼。实践表明,大多数业务人员或者客户根本不会看它一眼。他们更相信手工测试的结果,即使是测试人员也是如此。

 

    所以,不推荐用这个东西。

 

 

 

2. RSpec

 

    RSpec is the original Behaviour Driven Development framework for Ruby.

 

    Spec::Rails : A Rails plugin that brings RSpec to Rails.

 

 

3. spec_helper

 

  # use transactional for each test.
  config.use_transactional_fixtures = true
  # not only insert yaml data to database, but also created all objects. But we always disable it 
  # because of performance issue.
  config.use_instantiated_fixtures  = false
  # default fixtures path
  config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
 

4. rspec describe

   rspec测试中的describe XXXController有什么作用?看了源代码后,用这种方式会使这个spec成文被测试类的子类。那么它其中的public方法你都可以尽情调用。

 

 

5. integrate_views

 

    对于rspec controller测试,在必要的地方加上integrate_views,否则页面上的错误将被忽视。

 

    比如,你想验证在某种条件下,页面上会出现某些text,可以用这种方法:

 

    response.should include_text("")

 

 

 

6. rspec pending test

 

 

describe "test some thing" do
 
   it "do some something"     # it's a pending test with no implementation

end

 

 

2
0
分享到:
评论

相关推荐

    autocorr-vi-5.3.6.1-24.el7.noarch.rpm.zip

    文件太大放服务器下载,请务必到电脑端资源详情查看然后下载

    ssm旅游资源网站.zip

    ssm旅游资源网站.zip

    bc-1.06.95-13.el7.x86_64.rpm.zip

    文件放服务器下载,请务必到电脑端资源详情查看然后下载

    clutter-gtk-1.8.4-1.el7.x86_64.rpm.zip

    文件放服务器下载,请务必到电脑端资源详情查看然后下载

    autocorr-sv-5.3.6.1-24.el7.noarch.rpm.zip

    文件太大放服务器下载,请务必到电脑端资源详情查看然后下载

    基于分片技术实现高性能区块链go源码+项目说明(高分毕设).zip

    基于分片技术实现高性能区块链的Go源码和项目说明,是一个专为计算机、数学及电子信息等专业学生设计的毕业设计项目。该项目利用先进的区块链技术和分片机制,旨在解决传统区块链在大规模数据处理中的性能瓶颈问题。本项目通过引入分片技术,将区块链网络划分为多个较小的分片,每个分片独立处理一部分交易和数据。这种架构不仅提高了系统的并行处理能力,还显著提升了整体的交易吞吐量和网络性能。同时,项目还详细阐述了如何实现跨分片的数据同步与一致性保证,确保了系统的安全性和可靠性。此外,项目还包括完整的代码实现和详细的项目说明文档,为学习者提供了从理论到实践的全面指导。无论是区块链技术的初学者还是有一定基础的开发者,都可以通过这个项目深入了解分片技术的实现原理和应用方法。总的来说,这是一个集学习、实践与创新于一体的综合性项目,适合作为相关专业课程设计、期末大作业或毕业设计的优选题目。

    福聚苑社区团购.zip

    福聚苑社区团购.zip

    apr-util-nss-1.5.2-6.el7.x86_64.rpm.zip

    文件太大放服务器下载,请务必到电脑端资源详情查看然后下载

    bzip2-devel-1.0.6-13.el7.i686.rpm.zip

    文件放服务器下载,请务必到电脑端资源详情查看然后下载

    batik-slideshow-1.8-0.12.svn1230816.el7.noarch.rpm.zip

    文件放服务器下载,请务必到电脑端资源详情查看然后下载

    YT118-USB转串口(TYPE-C).zip

    该单片机项目可作为课程设计和期末大作业或者毕设,项目完整,有原理图和代码,需要的自行下载即可!

    babl-devel-0.1.10-10.el7.x86_64.rpm.zip

    文件放服务器下载,请务必到电脑端资源详情查看然后下载

    java小游戏,滚木块.zip学习资源代码

    java java小游戏,滚木块.zip学习资源代码

    agg-devel-2.5-18.el7.i686.rpm.zip

    文件太大放服务器下载,请务必到电脑端资源详情查看然后下载

    cockpit-ws-195.10-1.el7.centos.x86_64.rpm.zip

    文件放服务器下载,请务必到电脑端资源详情查看然后下载

    职能经历丰富度/职业数量/复合职能数据集(2008-2022年).txt

    因文件较多,数据存放网盘,txt文件内包含下载链接及提取码,永久有效。失效会第一时间进行补充。样例数据及详细介绍参见文章:https://blog.csdn.net/T0620514/article/details/144224915

    ca-certificates-2020.2.41-70.0.el7_8.noarch.rpm.zip

    文件放服务器下载,请务必到电脑端资源详情查看然后下载

    bash-doc-4.2.46-34.el7.x86_64.rpm.zip

    文件放服务器下载,请务必到电脑端资源详情查看然后下载

    avahi-gobject-devel-0.6.31-20.el7.x86_64.rpm.zip

    文件太大放服务器下载,请务必到电脑端资源详情查看然后下载

    Redis持久化策略与AOF机制详解

    内容概要:本文详细介绍了Redis的持久化策略,特别是RDB(Redis Database Backup)和AOF(Append Only File)两种主要的持久化方法。RDB通过在某个时间点创建数据集的快照来实现数据持久化,其优点包括数据恢复快、占用资源少、数据完整性高等。AOF通过记录每个写操作命令来实现数据的持久化,其优点包括数据安全性高、数据恢复完整、可配置性强等。文章还探讨了RDB和AOF的优缺点,并给出了具体的配置示例。此外,文章讨论了AOF在主从复制和集群模式下的应用以及在高并发场景下的性能调优和数据安全的最佳实践。 适合人群:具备Redis基础知识的技术人员、运维人员。 使用场景及目标:理解和掌握Redis的持久化机制,以便在实际生产环境中选择合适的持久化策略,提高数据的安全性和系统的可靠性。 阅读建议:读者应该重点关注RDB和AOF的具体实现原理及其优缺点,结合自己的业务需求选择合适的方法。在高可用和高并发环境下,需要特别注意AOF的配置和调优策略。

Global site tag (gtag.js) - Google Analytics