2015-01-04 3 views
0

My rails application использует minitest. Мне непонятно, какой класс я должен наследовать для своего теста. Я думал о ActionController :: TestCase, но это не кажется правильным, потому что он не привязан к контроллеру rails. Какие-либо предложения?Тестирование винограда с помощью Minitest - Какой класс унаследовать?

Редактировать: Нельзя использовать MiniTest::Unit::TestCase, потому что он не содержит ничего для проверки отдельных точек API.

+0

Я взял 30 секунд, чтобы Google "MiniTest" и, похоже, ответ должен быть 'MiniTest :: Unit :: TestCase '? – Adrian

+0

Извините, если я сказал, что снисходителен к вам, я не хотел быть. Что вы подразумеваете под «конечными точками api»? – Adrian

+0

Grape - это библиотека для Ruby для создания HTTP API. Вы можете интегрировать его в рельсы в определенной степени. Когда вы пишете тесты, вам нужно использовать GET, POST на ваших конечных точках HTTP. ActionController :: TestCase дает вам метод get для вызова контроллера и действия, но в этом случае это не сработает. Я ищу то, что наследует, поэтому я могу получить метод get/post и любые другие HTTP-помощники. – sunnyrjuneja

ответ

3

Вместо того, чтобы наследовать от определенного класса minitest, я просто включил тестовые помощники из Rack.

class V0::YourAPI < ActiveSupport::TestCase 
    include Rack::Test::Methods 

    def app 
    Rails.application 
    end 
end 
0

Я использую ActionDispatch::IntegrationTest класс

Например:

class ApiRequestTest < ActionDispatch::IntegrationTest 
test "sample response" do 
    get "/api/v1/sample_request" 
    assert_equal response.success?, true 
    assert_equal response.code, 200 
end 
end