2012-05-15 2 views
0

테스트 방법을 배우는 것은 어렵습니다! 나는 MiniTest를 실행하려고 노력 중이며, 그것은 힘이납니다. 나는 Ryan의 RailsCast를보고이 주제에서 찾을 수있는 모든 문서를 읽었습니다.MiniTest가 이상하게 동작하고 통합 테스트 폴더 오른쪽으로 건너 뜁니다

헬퍼, 모델 및 요청에 대해서만 테스트 (또는 시도)하고 있습니다. 바로 지금, 제 모델과 도우미 테스트는 방치되어 있습니다.

그러나 실제 인증 통합 테스트가 작성되었으며 실행되지도 않았습니다 !!! 이것 좀 봐 :이 가정 된 같은 단지 슈퍼입니다

➜ myapp git:(master) rake 
============================================================================== 
SUITE test/factories,test/helpers,test,test/models,test/requests (SEED 41025) 
============================================================================== 
User 
    0001 must be a real test         0:00:00.005 FAIL 
0:00:00.005 ERROR 
============================================================================== 
SUITE test/factories,test/helpers,test,test/models,test/requests (SEED 12794) 
============================================================================== 
SessionsHelper 
    0001 must be a real test         0:00:00.006 FAIL 
0:00:00.006 ERROR 
Errors running models, helpers! 

글쎄, 그것은 그들에 실패했습니다. 이제는 "test/requests"디렉토리의 내용을 실행하지 않는 이유가 무엇입니까!

require 'minitest_helper' 

describe "Login Integration" do 

    it "authenticates a user with a password" do 
    login_user 
    assert page.has_content?('Logged in') 
    end 

    it "fails to authenticate a user with a mismatched password" do 
    user = FactoryGirl.create(:user) 
    visit login_path 
    fill_in "Email", :with => user.email 
    fill_in "Password", :with => "bad password" 
    click_button "Log In" 
    assert page.has_content?('Invalid email or password') 
    end 

    it "logs out a user" do 
    login_user 
    click_link "Log Out" 
    assert page.has_content?('Logged out') 
    end 

end 

"Joe Blow"를 파일 중간에 입력 할 수 있으며 구문 오류가 표시되지 않습니다. 이 파일을 가져올 이유가 전혀 없습니다. "로그인 통합"이라는 이름을 보시겠습니까? 음,은과 같이 내 minitest_helper.rb에 바운스 :

class IntegrationTest < MiniTest::Spec 
    include Rails.application.routes.url_helpers 
    include Capybara::DSL 
    register_spec_type(/integration$/i, self) 
end 

그것은 확실히 우리가와에있을 곳이 경우 초기에 레일 4 코드베이스에서이 물건을 포함하는 단지 약간 비트를 보인다. 아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까?

답변

1

나는 이것을 알아 냈기 때문에 운이 좋다. 2 번 실패한 테스트 후에 테스트가 중단됩니다. 나는 이것에 대한 어떠한 문서도 발견하지 못했다. 당신이 당신의 테스트를 스텁 경우

그래서, 그냥 이런 식으로 작업을 수행합니다

describe User do 

    it "needs a real test" 

end 
"SKIP"테스트, 및 계속하는 데 원인이됩니다

.

은 다음과 같이하지 마 :

describe User do 

    it "must have a real test" do 

    flunk "needs a real test" 

    end 

end 

당신이 경우에 때문에, 테스트는 신비 중지, 그리고 왜 당신에게 아무것도가되지 않습니다.

필자의 모델과 도우미 테스트를 스터브 아웃하고 싶습니다. 그런 다음 통합 테스트를 구축하고 필요한 단위 테스트를 보완합니다. MiniTest로는 여전히 그 작업을 수행 할 수 있습니다. 단지 2 회의 오류만으로 끝납니다. 코드를 읽지는 않았지만 아마도 그 임계 값을 구성 할 수있는 방법이있을 것입니다.

관련 문제