joe*_*son 12 ruby specifications ruby-on-rails minitest
我正在构建一个包含Rails API的应用程序,并希望使用Ruby MiniTest :: Spec进行测试.
设置它的好方法是什么?
例如,良好的目录组织,包含文件的好方法等?
我正在使用Rails 3 In Action一书中的指南,该指南使用了RSpec,并且有很多关于API的章节.最大的变化是偏爱MiniTest :: Spec.
joe*_*son 18
回答我迄今为止发现的内容,以防它对其他开发人员有帮助....
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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
Factory.define :item do |x|
x.name { "Foo" }
end
class Api::BaseController < ActionController::Base
respond_to :json
end
Run Code Online (Sandbox Code Playgroud)
class Api::ItemsController < Api::BaseController
def index
respond_with(Item.all)
end
end
Run Code Online (Sandbox Code Playgroud)
MyApp::Application.routes.draw do
namespace :api do
resources :items
end
end
Run Code Online (Sandbox Code Playgroud)
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
| 归档时间: |
|
| 查看次数: |
6421 次 |
| 最近记录: |