0

残りの API を作成するためにグレープを使用しています。API を作成し、正常に動作するようになりました。この API をテストする必要があります。Rails API を作成すると、spec_helper.rb ファイルが自動的に生成されます。通常のテストの最初の行は次のとおりです。

spec_helper が必要

spec_helper.rb ファイルのコードを教えてください

単純なレーキ アプリケーションをテストするときに注目すべきその他の事項。

require 'grape'
require 'sequel'
require 'json'
module Twitter
  class API < Grape::API

    version 'v1', :using => :header, :vendor => 'twitter'
    format :json

    helpers do
      def current_user
        @current_user ||= User.authorize!(env)
      end

      def authenticate!
        error!('401 Unauthorized', 401) unless current_user
      end
    end

    resource :users do



      desc "Return a status."
      params do
        requires :id, :type => Integer, :desc => "Status id."
        optional :include , :type => String , :desc =>"parameter to include in "

      end
      get ':id' do
"Hello World"
end

このグレープ アプリケーションで localhost:9292/users/1234 を呼び出すと、応答は "Hello World" になります。このアプリをテストする方法は、テスト用の spec_helper.rb ファイルの内容です。レールを使用せずにグレープのみを使用しています。

4

2 に答える 2

0

それはすべて、何をテストしたいかによって異なります。

おそらく、テストしたいルート (localhost:9292/users/1234) は UsersController です。その場合、(rspec を使用して) 次のようなことを行う必要があります。

    describe UsersController do
      context "GET#show" do
        it "should return 'Hello World'" do
          get :show, id: 1234
          response.body.should include 'Hello World'
        end
      end
    end

rake タスク テストについては、コマンド ラインから rake タスクを実行し、期待される結果と rake タスクの出力を次のように比較する統合テストを作成します。

    describe "My Rake Task" do
      it "should return hello world" do
        results = `bundle exec rake my:rake:task`  
        results.should include 'Hello World'
      end
    end

これらの大まかな例がうまくいくことを願っています! 幸運を!

アップデート:

rake タスクのテストが非常に単純であるか不要になるように、可能な限りクラスの単体テストを作成する必要があります。

于 2013-02-02T20:58:52.353 に答える
0

ラックアプリのことだと思います。Grape の README には、テストに関する適切なセクションがあります。そこから始めるべきです。 https://github.com/intridea/grape#writing-tests

于 2013-02-02T23:20:58.980 に答える