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

Rspec-如何测试文件上传

阅读更多

   1. mock上传文件的代码

    
 def mock_uploader(file, type = 'image/jpg')
          filename = "%s/%s" % [ File.dirname(__FILE__), file ]
          uploader = ActionController::UploadedStringIO.new
          uploader.original_path = filename
          uploader.content_type = type
          def uploader.read
            File.read(original_path)
          end
          def uploader.size
            File.stat(original_path).size
          end
          uploader
        end



      ActionController::UploadedStringIO.new 会生成一个模拟的文件对象
   2. 初始化@file

   
  @file = mock_uploader('1.jpg')


   3. 测试方法

    
 it "should upload the file" do
          #    file = get_file
          tmp = Survey.new(
            :title => "test for upload file",
            :description => "this is for file",
            :upload_file => @file
          )
          tmp.save
          tmp.should_not nil
        end


   4. 查看test.log运行结果

    
 Survey Create (0.3ms)   INSERT INTO `survey` (`title`, `icon_url`, `create_time`, `description`) VALUES('test for upload file', '2010_05_28_14_35_28_1.jpg', '2010-05-28 06:35:28', 'this is for file')


分享到:
评论

相关推荐

    使用RSpec 测试Rails 程序.pdf

    - **测试文件上传**:对于涉及文件上传的功能,需要编写专门的测试来验证其行为。 - **测试时间**:由于应用可能依赖于时间计算,因此需要测试与时间相关的功能。 - **测试Web服务**:如果应用与其他Web服务进行交互...

    BookShare-测试版

    2. Carrierwave或Paperclip:用于文件上传和管理,可能被用来处理BookShare中的书籍文件。 3. RSpec或Minitest:进行单元测试和集成测试,确保代码质量。 4. Bootstrap或Foundation:用于前端UI设计,提升用户体验...

    tdd-rails-pluralsight:使用RSpec,Capybara和Cucumber以及Pluralsight课程学习Rails的TDD

    存根和依赖注入无轨演示测试其他情况测试电子邮件测试文件上传测试第三方API 测试您自己的API 试驾完整功能功能规格激励控制器创造鼓励画龙点睛 具有RSpec,Capybara和Cucumber的测试驱动Rails 我在TDD Rails上的...

    docker-nginx-proxy:增加了上载限制并删除了Nginx代理Docker映像的服务器令牌

    修改的nginx-proxy Docker映像 基于 docker镜像的修改后的docker镜像。 增加了nginx上载限制,并删除了nginx服务器令牌。 用法 ...通过Rspec和Hadolint完成测试 要运行Rspec测试: gem install b

    Rails插件收集

    例如,`devise`插件提供了用户身份验证和注册功能,`bootstrap-sass`插件帮助引入Bootstrap CSS框架,`paperclip`或`carrierwave`用于文件上传,`activeadmin`则提供了一个后台管理界面。 在博文“Rails插件收集”...

    自动化脚本集合

    在测试领域,RUBY常常与Cucumber、RSpec等测试框架结合,创建易于理解和维护的测试代码。RUBY的灵活性使得开发者能够快速地构建和修改测试用例,适应不断变化的项目需求。 ITAF(可能指的是某个特定的测试框架或...

    rails-startup:常规Rails4应用程序的基础

    回形针-文件上传(本地或S3) 车库-具有OAuth的REST API AdminLTE-管理员用户界面 RSpec&Turnip&Poltergeist-端到端测试 Capistrano-部署 联系表 静态内容页面 I18n CircleCI-持续集成 Heroku-PaaS 演示版 REST...

    rail on ruby

    - Paperclip 或 CarrierWave: 文件上传。 - RSpec 和 Capybara: 测试框架。 通过以上知识点的学习,开发者可以全面了解 Ruby on Rails 的核心概念和技术细节,为实际开发项目打下坚实的基础。

    rails-yelp-mvp-源码.rar

    8. **Gem依赖**:Rails项目通常依赖于许多社区gem,如Devise(用户认证)、Paperclip或Carrierwave(文件上传)、Pundit或CanCanCan(授权管理)、Bootstrap-sass(前端组件)等。 9. **版本控制**:项目很可能使用...

    Rails 3 in Action

    第九章讨论了 **文件上传** 的实现方式,这是 Web 应用中常见的功能之一。 - **文件上传**: - 实现用户可以上传图片、文档等文件的功能。 - 需要考虑安全性问题,防止恶意文件上传。 - 可以使用第三方服务,如 ...

    rails项目必备组件

    - **Paperclip或Carrierwave**:文件上传和处理库,支持图片、文档等不同类型的文件。 - **Rake**:Ruby的任务调度工具,执行脚本或任务。 - **Bugsnag或Honeybadger**:错误追踪服务,实时监控并报告应用中的...

    Agile Web Development with Rails-Second Edition-Beta一书例子

    7. **Gem**:Ruby的包管理器,Rails依赖于许多Gem来扩展功能,如Devise(用户认证)、RSpec(测试框架)、Carrierwave(文件上传)等。 8. **View模板系统**:Rails使用ERB(Embedded Ruby)或Haml等模板语言来渲染...

    book-explorer:这是一个网络应用程序,用于浏览以CSV文件导入的图书

    图书浏览器应用这是一个简单的Ruby on Rails(6)应用程序,它允许将CSV文件上传到S3并在页面上查看其内容。入门这些说明将为您提供在本地计算机上运行并运行的项目的副本,以进行开发和测试。先决条件在执行此操作...

    treegram:具有用户身份验证和文件上传功能的 Ruby on rails 照片共享应用程序

    树形图 一个简单的 ruby​​ on rails 应用程序。...用于上传文件的回形针宝石 SASS 使用 RSPEC 进行单元测试 使用 CAPYBARA 进行集成测试 作者 凯瑟琳·卡尔、J Sivakumaran 和 Lizzie Koehler 执照 麻省理工学院执照

    ruby-test-reporter:已弃用将Ruby测试覆盖率数据上传到Code Climate

    程序更快,以静态二进制文件的形式分发,支持并行CI构建,并且将在这里得到团队的持续支持。 现在已弃用了Ruby,Python,PHP和Javascript的现有测试报告器。 将您的Ruby测试套件中的SimpleCov测试覆盖率数据发布到...

    ruby插件.rar

    对于文件操作,`paperclip` 和 `carrierwave` 是常见的文件上传插件,它们方便地处理图片和其他文件的上传和存储。另外,`active_storage` 是 Rails 5.2 引入的内置文件处理系统,与 AWS S3 或其他云存储服务集成,...

    sp_parser:SP测试任务

    使用each_line方法评估文件,以实现内存安全性更高的方法或批量上传 处理意外情况 安装,运行和测试 要求: Ruby2.7.0 捆绑器2.1.2 授予权限: $ chmod +x bin/parser 运行样式指南和代码气味检查: $ rubocop $...

    Ruby On Rails

    最后,RoR社区活跃,有大量的gem(Ruby的库或插件)可供使用,例如Devise用于用户认证,CanCanCan进行权限控制,Paperclip或Carrierwave处理文件上传,以及Pundit或Authorizable管理授权等。 通过本教程的...

    Ruby_on_Rails实践.rar

    最后,Rails社区非常活跃,有许多优秀的第三方库和gem,如Devise用于用户认证,CanCanCan进行权限控制,Paperclip或Carrierwave处理文件上传等。这些gem可以帮助开发者快速实现功能,减少重复工作。 总结来说,Ruby...

    Ruby-RailsBlueprint是一个可以轻松快速地创建Rails5应用程序的样板

    如果需要处理文件上传,可以集成Paperclip或Carrierwave等库。Rails社区提供了丰富的插件和工具,使得Rails应用的扩展性极强。 总结来说,Rails Blueprint是一个针对Rails 5框架的项目初始化工具,通过提供预设的...

Global site tag (gtag.js) - Google Analytics