ruby-on-rails – 如何使用Ruby MiniTest :: Spec与Rails进行API
发布时间:2020-12-16 19:42:57 所属栏目:百科 来源:网络整理
导读:我正在构建一个包含Rails API的应用程序,并希望使用 Ruby MiniTest :: Spec进行测试. 什么是设置好的好方法? 例如,良好的目录组织,包含文件的好方法等? 我在“Rails 3 In Action”一书中使用了使用RSpec的指南,并对API有一个很好的一章.最大的变化是喜欢Mi
我正在构建一个包含Rails API的应用程序,并希望使用
Ruby MiniTest :: Spec进行测试.
什么是设置好的好方法? 例如,良好的目录组织,包含文件的好方法等? 我在“Rails 3 In Action”一书中使用了使用RSpec的指南,并对API有一个很好的一章.最大的变化是喜欢MiniTest :: Spec. 解决方法
回答我到目前为止发现的情况,以帮助其他开发人员….
规格/ API / items_spec.rb require 'spec_helper' class ItemsSpec < ActionDispatch::IntegrationTest before do @item = Factory.create(:item) end describe "items that are viewable by this user" do it "responds with good json" do get "/api/items.json" response.success?.must_equal true body.must_equal Item.all.to_json items = JSON.parse(response.body) items.any?{|x| x["name"] == @item.name}.must_equal true end end end 投机/ spec_helper.rb ENV["RAILS_ENV"] = "test" require File.expand_path('../../config/environment',__FILE__) gem 'minitest' require 'minitest/autorun' require 'action_controller/test_case' require 'capybara/rails' require 'rails/test_help' require 'miniskirt' require 'factories' require 'mocha' # Support files Dir["#{File.expand_path(File.dirname(__FILE__))}/support/*.rb"].each do |file| require file end 规格/工厂/ item.rb的 Factory.define :item do |x| x.name { "Foo" } end 应用程序/控制器/ API / base_controller.rb class Api::BaseController < ActionController::Base respond_to :json end 应用程序/控制器/ API / items_controller.rb class Api::ItemsController < Api::BaseController def index respond_with(Item.all) end end 配置/ routes.rb中 MyApp::Application.routes.draw do namespace :api do resources :items end end 的Gemfile group :development,:test do gem 'capybara' # Integration test tool to simulate a user on a website. gem 'capybara_minitest_spec' # MiniTest::Spec expectations for Capybara node matchers. gem 'mocha' # Mocking and stubbing library for test doubles for Ruby. gem 'minitest','>= 3' # Ruby's core TDD,BDD,mocking,and benchmarking. gem 'minitest-capybara' # Add Capybara driver switching parameters to minitest/spec. gem 'minitest-matchers' # RSpec/Shoulda-style matchers for minitest. gem 'minitest-metadata' # Annotate tests with metadata key-value pairs. gem 'minitest-spec-rails' # Drop in MiniTest::Spec support for Rails 3. gem 'miniskirt' # Factory creators to go with minitest. gem 'ruby-prof' # Fast code profiler for Ruby with native C code. end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |