`
zhuwenhao01
  • 浏览: 1011 次
  • 性别: Icon_minigender_1
  • 来自: 江苏南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

如何在rails中用rspec测试respond是json格式的数据

阅读更多
小弟最近在给ruby项目写单元测试,用的是rspec遇到个问题想问下
代码如下:
#
# 用户管理
#

class UsersController < ApplicationController
  before_filter :monitor_required, :except=>[:destroy]
  before_filter :admin_required, :only=>[:destroy, :reset_pwd]
  before_filter :get_user, :except=>:index

  # 显示所有的管理员
  # [GET] /users
  # [FILTER] group=[:all,:admin,:configer,:monitor]
  # [ORDER]  order=column_name  
  # [PAGE]   page = n
  # [FULL URL] /users(/index).json?group=all&page=n&order=name
  def index
    group = params[:group] || "all"
    if( group == "all") 
      @users = User.find(:all, extract_common_query)
      @total = User.count
    else
      @users = User.find_all_by_group(group,  extract_common_query)
      @total = User.count(:all, :conditions=>["`group` = ?", group])
    end
    respond_to{|format|
      format.json{
        render_json_list(@users, @total)
      }
      format.xml{
        render(:xml=>@users.to_xml)
      }
    }
  end



其中extract_common_query()方法是


  # 抽取一般JS查询的三个典型参数
  # <li>order
  # <li>limit
  # <li>offset
  def extract_common_query
    params[:offset] = params[:start]
    ecq = {:limit=>25,:offset=>0}.update( params.only(:order,:limit,:offset) )
    ecq.symbolize_keys!
  end



其中render_json_list()方法是:
 
def render_json_list( data, total = data.size )
    render(:text=>"{totalCount:#{total},rows:" + data.to_json + "}", :status => 200)
end



如何用rspec测试出response 是json数据?
分享到:
评论

相关推荐

    使用RSpec 测试Rails 程序.pdf

    - **测试不输出HTML的控制器**:对于仅返回JSON或其他格式数据的控制器,也需要编写相应的测试。 #### 六、功能测试 - **为什么要编写功能测试**:功能测试(也称为端到端测试或接受测试)用于验证整个系统的行为...

    在rails中 使用RSpec生产CHM文档

    标题 "在Rails中使用RSpec生产CHM文档" 暗示了这个话题是关于如何在Ruby on Rails(简称Rails)框架中使用RSpec测试工具来创建帮助文档,特别是以CHM(Microsoft Compiled HTML Help)格式。CHM文件是一种常见的...

    rspec测试.pdf

    在实际开发中,RSpec被广泛应用于Web应用程序的测试,特别是在使用Ruby on Rails框架时。RSpec能够帮助开发者快速构建出可靠且可维护的测试套件,确保代码的质量和稳定性。此外,RSpec还支持多种类型的测试,包括...

    jasper-rails-rspec

    jasper-rails-rspec jasper-rails 和 RSpec 集成。 它只是定义了一个名为“包含”的新 RSpec 匹配器。依赖关系 安装 gem install jasper-rails-rspec配置将jasper-rails-rspec添加到您的 Gemfile 中: gem "jasper-...

    schema_conformist:用于在Rails中进行测试的自动JSON响应验证器

    用于在Rails中进行测试的自动JSON请求/响应验证器 SchemaConformist是用于Rails中的API测试的自动JSON请求/响应验证器。 该库自动验证JSON请求/响应是否与模式一致。 该模式可以描述为 , 和OpenAPI 3中的一种...

    atom-rails-rspec:在 atom 编辑器中切换 rails 项目的规范和测试文件

    在带有 rspec 的 rails 项目中,在 atom 编辑器中的 spec 和测试文件之间切换。 如何使用 在编辑器中: alt-ctrl-r :在规范和测试的 ruby​​ 文件之间切换。 配置 支持多个规范路径。 默认情况下,在“spec”、...

    RSpec 3.1中文版

    书中还可能涉及到了如何在Rails应用中整合RSpec的不同组件,比如Rails的测试工具和RSpec的扩展。 综上所述,RSpec 3.1中文版是一本针对Rails开发者,特别是希望学习或提高其RSpec使用技能的开发者的实践指南。它...

    rspec-rails:适用于Rails 5+的RSpec

    rspec-rails rspec-rails将测试框架带到作为其默认测试框架Minitest的替代品。 在RSpec中,测试不仅仅是验证您的应用程序代码的脚本。 它们也是规范(或简称为spec ):用纯英语表示的有关应用程序行为的详细说明。 ...

    rspec-console:在rails控制台中运行RSpec测试

    RSpec控制台允许您在Rails控制台中运行RSpec测试。 最好与搭配使用。 在使用,它特别有用,因为它将为您保持活动的JVM运行。 这极大地减少了在jRuby中执行TDD的反馈循环-一切都不会弄乱指甲! 观看截屏 用法 1)...

    自动化生成支持cucumber,Rspec的Rails(持续更新中)

    标题 "自动化生成支持cucumber,Rspec的Rails(持续更新中)" 暗示了这个压缩包文件的内容可能涉及使用Cucumber和RSpec这两种自动化测试工具在Ruby on Rails框架下的集成和配置。Cucumber是一种行为驱动开发(BDD)的...

    testbot:[未维护] Testbot是与Rails,RSpec,RSpec2,Test一起使用的测试分发工具

    旧的自述文件Testbot是一个测试分发工具,可与Rails,RSpec,RSpec2,Test :: Unit和Cucumber一起使用。 基本思想是让testbot将测试的负载分散到多台计算机上,以使测试运行更快。 在11台机器(25个内核)上使用...

    rspec-setup-rails:如何使用 Rspec 快速设置导轨

    ##在 Rails 中快速设置 RSpec,使用 Capybara、Factory Girl、Database Cleaner、Shoulda-matchers 等... 在命令行中,运行rails new app_name -T (关闭默认测试单元) 将 Gems 添加到 gemfile,然后捆绑。 gem '...

    rails api(文档)

    10. **测试**:测试是API开发的关键部分,Rails API支持RSpec、Minitest等多种测试框架,方便编写和执行API端点的测试用例。 Rails API文档是学习和开发这个框架的重要资源。它详细介绍了如何设置项目、配置路由、...

    Ruby和Ruby on Rails中解析JSON格式数据的实例教程

    总之,理解如何在Ruby和Ruby on Rails中安全地解析JSON数据是至关重要的,无论是直接使用内置的`JSON`库,还是通过自定义的模块,如`SafeJSON`,都可以帮助我们有效地处理JSON数据,同时避免潜在的安全风险。在实际...

    Rails 4 Test Prescriptions

    3. **深度剖析RSpec**:作为RSpec领域内的一位权威专家,Noel Rappin在书中对RSpec的使用方法进行了深度剖析,为读者揭示了这一工具的强大功能及其在提高测试效率方面的作用。 4. **广泛的适用性**:无论你是正在...

    ruby on rails API

    同时,可以设置`Content-Type`响应头为`application/json`,表明返回的数据是JSON格式。 4. 资源路由:Rails的路由系统允许开发者定义资源路由,例如`resources :users`,这会自动为用户提供一系列与用户相关的URL...

    railsAPI

    Rails集成了测试框架如RSpec和MiniTest,允许开发者编写单元测试、集成测试和功能测试,确保代码的稳定性和可靠性。 安全方面,Rails提供了许多安全特性,如CSRF(跨站请求伪造)防护、XSS(跨站脚本)防御、以及...

    深入解析Rails测试策略:单元测试与功能测试的区别

    单元测试和功能测试是Rails中两种主要的测试类型,它们在目的、范围和实现方式上有所不同。本文将详细探讨Rails中单元测试和功能测试的区别,并提供实际代码示例。 单元测试和功能测试是Rails测试策略的两个重要组成...

    as_json_encoder:为 Rails 需求量身定制的 JSON 编码器

    一个 JSON 编码器,专为 Rails 的需求量身定制。 目标是利用领域知识并加速 Rails 应用程序中的 JSON 编码过程。 这个 gem 与 Rails 4.1+ 兼容。 当前状态 目前,这是高度实验性的。 性能与当前的 Rails JSON 编码...

Global site tag (gtag.js) - Google Analytics