1

방금 ​​새로운 레일 앱을 시작했습니다. 지금까지는 컨트롤러 나 모델이 없으며 단순히 두 개의 엔진 만 있습니다.놀림의 통합 테스트 (정유소와 함께)

그들은 다음과 같이 설치됩니다

이제 내가 갈 때 너무/다음 내가 정유 홈 페이지를 참조 등 때 페이지 우리에 관하여를 클릭 할 수 있습니다 정유를 사용하여 몇 페이지를 설정 한
Store::Application.routes.draw do 

    mount Spree::Core::Engine, :at => '/shop' 
    mount Refinery::Core::Engine, :at => '/' 

end 

나는/가게에 간다. 그리고 나는 또한 잘 작동하고있는 사이트의 즐겁게 섹션을 본다.

이제는 'spree'엔진이 '/ shop'에 올바르게 마운트되었다는 작은 테스트를 작성하고 싶습니다. 나는 다음과 같은 시험과 시도 :

require 'test_helper' 

class SpreeEngineTest < ActionDispatch::IntegrationTest 

    test "has been correctly mounted" do 
    get "/shop" 
    assert_response :success 
    end 

end 

그러나 결과와 함께 실패

Expected response to be a <:success>, but was <302> 

내가 요청의 본문에 보니 다음과 같은 포함

"<html><body>You are being <a href=\"http://www.example.com/refinery/users/register\">redirected</a>.</body></html>" 

I을 표준 testunit 패키지 및 레일을 사용하고 있습니다. 3.2

당신의 도움에 감사드립니다!

답변

0

늦게 답변드립니다. 그 이유는 올바른 역할을 가진 사용자가 데이터베이스에 존재하지 않는다는 것을 발견하면 Refinery가 사용자 생성 대화 상자로 사용자를 리다이렉트하기 때문입니다. 그래서 내 생각 엔 테스트 데이터베이스에 등록 된 사용자가 없어도이 테스트를 실행 중이므로 리디렉션이 발생합니다. 당신의 통합 테스트에서

는 다음 설치 방법을 추가

def setup 
    user = Refinery::User.new(:username => 'testuser', :email => '[email protected]', :password => 'test', :password_confirmation => 'test') 
    assert user.create_first 
end 

이 올바른 역할과 기본 사용자가 존재하는지 확인하고 시험의 나머지는 확인해야합니다.