2015-02-08 3 views
1

Я пытаюсь проверить свой API-интерфейс Grape, но я получаю ошибку 400 в своих тестах, но когда я запускаю действие, которое должен тестировать тест, я получаю ответ HTTP-HTTP, как и ожидалось , Не уверен, что здесь происходит. Ниже приведен конкретный тест RSpec, но вы можете просмотреть весь проект с заводами и фактическим API Grape на GitHub по адресу hackcentral/hackcentral. Нижеприведенный тест проверяет действие POST для создания Alpha :: Applications. (Приложение/API/альфа/applications.rb)Grape Rails RSpec test return 400

describe 'POST #create' do 
    before :each do 
    @oauth_application = FactoryGirl.build(:oauth_application) 
    @token = Doorkeeper::AccessToken.create!(:application_id => @oauth_application.id, :resource_owner_id => user.id) 
    end 

    context "with valid attributes" do 
    it "creates a new application" do 
     expect{ 
     post "http://api.vcap.me:3000/v1/applications?access_token=#{@token.token}", application: FactoryGirl.attributes_for(:application), :format => :json 
     } .to change(Application, :count).by(1) 
    end 

    it "creates a new application, making sure response is #201" do 
     post "http://api.vcap.me:3000/v1/applications", application: FactoryGirl.attributes_for(:application), :format => :json, :access_token => @token.token 
     response.status.should eq(201) 
    end 
    end 
end 

ответ

0

Я не понимаю, почему вы тестирование http://api.vcap.me не LOCALHOST?

Обычно вы тестируете приложение на местном уровне. И это неверно, почему нужно тестировать, работает ли сервер.

Вот пример того, как должен выглядеть ваш тест. https://github.com/dblock/grape-on-rails/blob/master/spec/api/ping_spec.rb от example project