2010-07-24 6 views
0

내부에서 인스턴스 변수를 사용하는 도우미를 테스트하고 싶습니다. 레일즈 2.3을 기본 테스트 프레임 워크와 함께 사용하고 있습니다. 누군가가 내 간단한 테스트를 작성해 주실 수 있습니까? (단위 테스트라고 생각합니다). 덕분에인스턴스 변수로 도우미를 테스트하는 레일?

예로서 간단한 코드입니다.

# controller 
@bla = "some value" 

# view 
<%= foo %> 

# helper 

def foo 
    @bla.reverse 
end 

매개 변수 호출로이 도우미를 작성하는 것이 더 나은 방법입니까?

def foo(s) 
    s.reverse 
end 

답변

0

아마도 내가 누락되었지만, 예제에서 보았 듯이 역순 함수를 사용하여 일대일 랩퍼를 작성했을 것입니다. 너 뭐하려고?

테스트의 경우 레일과 함께 제공되는 테스트 스위트에서 도우미를 직접 테스트 할 수있는 방법은 없지만이 기능을 추가하는 플러그인은 http://nubyonrails.com/articles/test-your-helpers입니다. 나는 그것을 잠시 사용하지 않았지만 여전히 효과가 있다고 생각합니다.

+0

답장을 보내 주셔서 감사합니다. 도우미는 "실제 코드"가 아닌 단지 예일뿐입니다. – startkinder

+0

아무런 문제가 없습니다. D. 하지만 네, 짧은 대답 - 컨트롤러를 통해 헬퍼를 테스트하거나 헬퍼 테스트 프레임 워크가 내장되어 있지 않습니다. :) – jasonpgignac

1

도우미를 아주 쉽게 테스트 할 수 있으며 테스트 프레임 워크에 내장되어 있으므로 jasonpgignac이 무엇을 말하는지 잘 모르겠습니다.

테스트/유닛/도우미에서 스크립트로 생성 된 모든 헬퍼를 볼 수 있습니다. 그러나 비계 또는 컨트롤러를 생성 할 수는 있지만 생성합니다.

그 파일 안에는 결과가 예상대로 나오는지 테스트하기 때문에 값이 동일하다는 것을 단언 할 수 있습니다. 여기에 내가 내 코드에서 가져온 하나는 다음과 같습니다

require 'test_helper' 

class PaymentsHelperTest < ActionView::TestCase 
    test "displays Month names" do 
    assert_equal "April 2010", month_and_year_name(payment_transactions(:one)) 
    end 
end 

내가 쓴 이후 잠시왔다,하지만 당신은 당신의 주장에 실제 도우미를 호출합니다. 이 경우에는 내 도우미가 month_and_year_name이라고 불리 웠고 그에게 조명기를 전달했습니다.

인간에게 가장 잘 알려진 테스트 프레임 워크 인 test :: unit 및 fixtures ...는 신이 의도 한대로 제공됩니다.

관련 문제