두 가지 사양이 있습니다. 하나는 모든 기본값을 사용하여 작성되었습니다 (저는 셀렌이 기본값이라고 생각합니까?) 그리고 다른 하나는 웹킷을 사용합니다. 그들은 정확히 동일하지만, 하나는 위의 click_link 'Add Payment Scheme'
에서 발생, 다른 하나는 사양하지사양이 왜 실패합니까?
사양
let(:admin) {create(:user, :admin)}
let(:programme) { create(:programme, :full_payment_scheme) }
before(:each) do
login_as(admin)
visit edit_programme_path(programme)
end
scenario 'adding a payment_scheme', js: true do
new_payment_scheme = create(:payment_scheme)
visit edit_programme_path(programme)
click_link 'Add Payment Scheme'
select new_payment_scheme.name, from: all('select[id*="programme_programme_payment_schemes_attributes"][id*="payment_scheme_id"]').last[:id]
fill_in all('input[id*="programme_programme_payment_schemes_attributes"][id*="markup"]').last[:id], with: 50
fill_in all('input[id*="programme_payment_scheme_allocations_attributes"][id*="interval_weeks"]').last[:id], with: 10
fill_in all('input[id*="programme_payment_scheme_allocations_attributes"][id*="allocation"]').last[:id], with: 100
expect {click_button "Save"}.to change{ProgrammePaymentScheme.count}.by(1)
end
자바 스크립트를하지 못합니다. 노트는 ID가 이상하게 보입니다. 그러나 중첩 된 속성을 사용하고 페이지에 동적으로 컨트롤을 추가하면 ID에 임의의 부분이 있습니다 (일반적으로 다음과 같이 계산됩니다). 날짜). 그래서 나는 직접 신분증을 사용할 수 없다. 나는 펑키 CSS 선택기를 사용해야합니다.
Programme edit page
editing the payment_scheme
adding a payment_scheme (FAILED - 1)
Failures:
1) Programme edit page editing the payment_scheme adding a payment_scheme
Failure/Error: expect {click_button "Save"}.to change{ProgrammePaymentScheme.count}.by(1)
expected result to have changed by 1, but was changed by 0
# ./spec/features/programmes/programme_edit_spec.rb:57:in `block (3 levels) in <top (required)>'
# -e:1:in `<main>'
Finished in 3.8 seconds (files took 0.53482 seconds to load)
1 example, 1 failure
Failed examples:
rspec ./spec/features/programmes/programme_edit_spec.rb:48 # Programme edit page editing the payment_scheme adding a payment_scheme
Top 1 slowest examples (3.48 seconds, 91.5% of total time):
Programme edit page editing the payment_scheme adding a payment_scheme
3.48 seconds ./spec/features/programmes/programme_edit_spec.rb:48
내가 저장하고 Launchy에를 사용하여 페이지를 열 웹킷의 기본에 대한
결과
Programme edit page
editing the payment_scheme
adding a payment_scheme
Finished in 8.57 seconds (files took 1.25 seconds to load)
1 example, 0 failures
Top 1 slowest examples (7.6 seconds, 88.7% of total time):
Programme edit page editing the payment_scheme adding a payment_scheme
7.6 seconds ./spec/features/programmes/programme_edit_spec.rb:48
[email protected] ~/Sites/phoenix ±20487304354485⚡ » rspec spec/features/programmes/programme_edit_spec.rb
결과, 나는 몇 가지 이유가 지불 작성 아니에요 볼 계획 필드. 이 기능은 셀레늄을 사용하여 잘 작동합니다. 나는 시험을 다시 시도했지만 거기에는 운이 없다.
나는 그것이 모두라고 생각합니다. 모든 입력을 부탁드립니다.
또한 콘솔/프리젠 테이션에서 테스트를 실행하는 것이 좋습니다. 정말 유용합니다. 시작 세션을 시작하고 코드가하는 것과 같은 방식으로 브라우저를 열고 셀레늄 (또는 사용하는 모든 것)을 동적으로 스크립트합니다. –
감사합니다. 나는 콘솔을 통해 셀레늄 스크립트를 시도 할 것이다. 그렇게 생각하지 마십시오. –