2011-03-14 2 views
0

나는 레일스 2.3.11 컨트롤러를 디버깅하려고합니다. 그것은 다음과 같습니다 : 나는 똑같이 작동합니다 AppleController의 인스턴스를 얻을 수 있도록 내가 콘솔에서 쓸 수 있습니다 무엇콘솔에서 ActionController의 인스턴스를 만들려면 무엇을 사용할 수 있습니까?

p = { ... } 

:

로그에서
class AppleController < ... 
    # ... 

    def create 
    # ... 
    end 
end 

, 나는 일부 매개 변수 p이 해당 매개 변수가있는 정규 인스턴스가 있는데 .create에 전화 할 수 있습니까?

ac = AppleController.new 
# What goes here? 
ac.create 
감사

(더 @request 객체 등이 없기 때문에 단지 ac.params = p을 할당하는 것은 충분하지 않다 공지 사항)!

답변

-1

질문을 올바르게 읽는 경우 콘솔에서 Apple.create(:something => "bah")으로 전화하면됩니다. 게시물 요청을 받으면 컨트롤러가하는 일을 모방해야합니다.

+0

요청 헤더 등은 어떻게됩니까? 그것들은 창조되지 않았을 것입니까? –

+0

걱정 되시면 콘솔을 지나서 몇 가지 기능/통합 테스트로 이동하십시오. http://guides.rubyonrails.org/testing.html#functional-tests-for-your-controllers –

+0

불행히도 코드베이스를 수정할 수있는 능력이 없습니다. 코드베이스를 수정할 수있는 능력이 없습니다. 나는 통제하지 않는다. 날 믿어 라. 시험을 치는 것이 내가해야 할 첫 번째 일이다. –

1

나는 이것이 가장 ActionController::Integration::Session 클래스를 사용하여

예를 들어, 할 생각 AppleController

require 'action_controller/integration' 
app = ActionController::Integration::Session.new; 
app.post('/apples', params) # assuming '/apples' is the path to your AppleController 
puts app.response.inspect 
관련 문제