현재이 프로젝트는 정적 인 페이지입니다. 제네릭 테스트 프레임 워크를 개발하고 있지만 다른 테스트 옵션을 구별하기 위해 고심하고 있습니다. 나는 Rspec, Capybara, Faker, Factory Girl, Spring, 및 shoulda를 추가했다. (그러나 나는 현재로서는 shoulda matchers를 사용하지 않는다.)capybara have_title NoMethodError
내가이 컨트롤러 테스트 파일이 : 내가 얻을, 두 번째 않고
이23:13:39 - INFO - Run all
23:13:39 - INFO - Running all specs
Running via Spring preloader in process 4498
Running via Spring preloader in process 4506
/home/steve/workspaces/static_site/db/schema.rb doesn't exist yet. Run `rake db:migrate` to create it, then try again. If you do not intend to use a database, you should instead alter /home/steve/workspaces/static_site/config/application.rb to limit the frameworks that will be loaded.
.F
Failures:
1) StaticPagesController GET #a_page has a page title Static Site
Failure/Error: expect(response).to have_title('Static Site')
NoMethodError:
undefined method `match' for nil:NilClass
Did you mean? catch
# /home/steve/.rvm/gems/ruby-2.3.1/gems/capybara-2.7.1/lib/capybara/queries/title_query.rb:18:in `resolves_for?'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/capybara-2.7.1/lib/capybara/node/document_matchers.rb:20:in `block in assert_title'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/capybara-2.7.1/lib/capybara/node/simple.rb:144:in `synchronize'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/capybara-2.7.1/lib/capybara/node/document_matchers.rb:19:in `assert_title'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/capybara-2.7.1/lib/capybara/rspec/matchers.rb:105:in `matches?'
# ./spec/controllers/static_pages_controller_spec.rb:34:in `block (3 levels) in <top (required)>'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/spring-commands-rspec-1.0.4/lib/spring/commands/rspec.rb:18:in `call'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/command_wrapper.rb:38:in `call'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application.rb:191:in `block in serve'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application.rb:161:in `fork'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application.rb:161:in `serve'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application.rb:131:in `block in run'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application.rb:125:in `loop'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application.rb:125:in `run'
# /home/steve/.rvm/gems/ruby-2.3.1/gems/spring-1.7.1/lib/spring/application/boot.rb:19:in `<top (required)>'
# -e:1:in `<main>'
Finished in 0.029 seconds (files took 2.54 seconds to load)
2 examples, 1 failure
Failed examples:
rspec ./spec/controllers/static_pages_controller_spec.rb:33 # StaticPagesController GET #a_page has a page title Static Site
첫 번째 테스트 확인을 실행하고이 경비를 실행하면
require 'rails_helper'
RSpec.describe StaticPagesController, type: :controller do
describe "GET #a_page" do
before(:each) { get :a_page }
it "returns http success" do
expect(response).to have_http_status(:success)
end
it "has a page title Static Site" do
expect(response).to have_title('Static Site')
end
end
end
을, 에러 스택을 던졌습니다 깨끗한 결과. 나는 많은 시간을 내 config를 지나는 데 보냈으며 괜찮아 보였다. 필자는 문서와 지원 사이트를 살펴 보았습니다.
아무도 도와 줄 수 있습니까?
의견을 보내 주셔서 감사합니다. 이 문제를 많이 읽은 후에는 모델, 컨트롤러 (OQ에서 제안한 테스트 유형 제외) 및 기능에 대한 테스트 만 작성하려고합니다. View 테스트는 그렇게 많은 것을 얻지 못하는 것 같아서 나는 그들과 함께 신경 쓰지 않을 것이라고 생각합니다. 그게 맞는 것 같니? –
@SteveRoach 어떤 테스트가 생산성 향상에 도움이되는지 기록하십시오. - 기능 테스트를 통해 테스트 한 기능 테스트는 속도가 훨씬 빠르지 만 페이지가 실제로 확인 될 수 있기 때문에 페이지가 더 많이 구동됨에 따라 유용성을 잃기 시작합니다. 정적 콘텐츠. 내 개인적인 믿음은 TDD가 많은 사람들이 테스트 것들 이상으로 밀어 붙였다는 것입니다. –
그 톰에 감사드립니다. View에 대한 기능 테스트는 주로 모든 것에 대해 하나의 접근 방식을 사용하는 것이 더 중요하다고 생각합니다. 나는 그저 한 가지를 아주 잘하기를 바랍니다. 어쩌면 길을 따라 조금 섞을거야. 나는 지금 속도 문제로 살거야. 나는 시험 균형을 바로 잡으려고 노력하고있어. 그리고 나는 더 많은 경험도 올 것이라고 생각한다. 그동안, 나는 모든 프로젝트에 좋은 기초를 제공 할 표준 (나에게) 테스트 라이브러리를 제공하려고 노력 중이다. 그럼 그걸 쌓아 라. 피드백에 감사드립니다. 모든 것이 좋습니다. –