2009-06-22 2 views
2

스크립트 \ 콘솔에서 헬퍼 메서드를 빠르게 디버깅하는 방법은 무엇입니까? 나는 변화를 만들고 디버깅을 계속하는 것에 대해 이야기하고있다.스크립트 콘솔에서 헬퍼 메서드를 신속하게 디버그

Model 메서드를 사용하면 훨씬 쉽습니다. 다시 수행하려면 reload를 사용해야합니다. 는 도우미 메서드를 테스트하는 반면, 나는이

foo는 = ActionView :: Base.new foo.extend의 ​​YourHelperModule

나는 검사 할에 때마다 같은 것을 할 필요가 업데이트 된 코드를 테스트합니다 변화.

무엇이 다시로드됩니까? 해야 할 것? 위의 코드 줄을 추가하도록이 코드를 수정할 수 있습니까?

답변

3

레일즈 해킹없이 그렇게 할 수 있다고 생각하지 않습니다. 그러나, 해결 방법있다 - 레일 디버거에서 디버깅 도우미 방법 :

1) 보석 루비 - 디버그 설치

3)에 <퍼센트 디버거 %>를 배치 --debugger

2) 루비 스크립트/서버 몇 가지보기와 브라우저에서

4) 서버 창을 해당 페이지를 열은

5) '복귀'명령은 디버깅을 종료 헬퍼 메소드를 디버깅 할 수 있습니다 콘솔 '로 변신 "

도우미 메서드를 수정하고 디버거를 다시 실행하면 최신 버전의 메서드가 나타납니다. 디버거에 대한

더 많은 정보는 여기에 있습니다 : 당신이 "또 다시"일을하는 경우 http://railscasts.com/episodes/54-debugging-with-ruby-debug

2

필자는 스크립트 콘솔을 사용하지 않고 Test :: Unit 또는 rspec에 테스트를 작성하지 않을 것을 제안합니다. Google은 거기에 많은 정보가 있음을 올바른 방향으로 지적해야합니다.

0

는 다음을 자동화해야한다. 도우미 함수가 다른 곳에서 언급 한 것처럼 무엇을해야하는지 알고 있다고 가정하면 테스트를 작성할 수 있어야합니다.

다음은 application_helper를 테스트하는 샘플입니다. 그것은 내 test/unit 디렉토리에 살고 :

require 'test_helper' 

class ApplicationHelperTest < ActiveSupport::TestCase 

    include ApplicationHelper 

    test "number_as_pct shows 2dp as default" do 
    assert_equal "1.10%", number_as_pct(0.011) 
    end 
    test "number_as_pct shows more dp when required" do 
    assert_equal "1.1000%", number_as_pct(0.011, :precision => 4) 
    end 
end 
관련 문제